Шрифт:
Еще один пример скрытого типа данных — это тип
Другие примеры скрытых типов данных в ядре — это
• Нельзя предполагать, что данные скрытого типа имеют некоторый определенный размер в памяти.
• Нельзя преобразовывать скрытый тип обратно в стандартный тип данных.
Разрабатывать код необходимо с учетом того, что размер и внутреннее представление скрытого типа данных могут изменяться.
Специальные типы данных
Некоторые данные в ядре, кроме того, что представляются с помощью скрытых типов, требуют еще и специальных типов данных. Два примера — счетчик импульсов системного таймера
При хранении и использовании специфических данных всегда необходимо обращать особенное внимание на тот тип данных, который представляет эти данные, и использовать именно его. Часто встречающейся ошибкой является использование другого типа, например типа
Типы с явным указанием размера
Часто при программировании необходимы типы данных заданного размера. Обычно это необходимо для удовлетворения некоторых внешних требований, связанных с аппаратным обеспечением, сетью или бинарной совместимостью. Например, звуковой адаптер может иметь 32-разрядный регистр, пакет сетевого протокола — 16-разрядное поле данных, а исполняемый файл — 8 битовый идентификатор cookie. В этих случаях тип, который представляет данные, должен иметь точно заданный размер.
В ядре типы данных явно заданного размера определены в файле
Таблица 19.2. Типы данных явно заданного размера
Тип | Описание |
---|---|
s8 | байт со знаком |
u8 | байт без знака |
s16 | 16-разрядное целое число со знаком |
u16 | 16-разрядное целое число без знака |
s32 | 32-разрядное целое число со знаком |
u32 | 32-разрядное целое число без знака |
s64 | 64-разрядное целое число со знаком |
u64 | 64-разрядное целое число без знака |
Варианты со знаком используются редко.
Эти типы данных, с явно заданным размером, просто определены с помощью оператора
Для 32-разрядной машины их можно определить, как показано ниже.
Знак типа данных
В стандарте языка С сказано, что тип данных
Для большинства аппаратных платформ тип