Какой смысл типа WORD в C?
Проходя некоторый исходный код, я нашел метод в программе на C, который принимает аргументы типов WORD, DWORD и PWORD. Я знаю, что они переводятся на числа без знака, но почему их называют СЛОВО?
3 ответа
Размер слова и типы данных
Слово - это количество данных, которое машина может обработать за один раз. Это вписывается в аналогию с документом, которая включает символы (обычно восемь бит) и страницы (много слов, часто 4 или 8 КБ) в качестве других измерений данных. Слово - это целое число байтов, например, один, два, четыре или восемь. Когда кто-то говорит о "n-битах" машины, он обычно говорит о размере слова машины. Например, когда люди говорят, что Pentium является 32-битным чипом, они ссылаются на размер его слова, который составляет 32 бита или четыре байта.
Размер регистров общего назначения процессора (GPR) равен размеру его слова. Ширина компонентов в заданной архитектуре, например, в шине памяти, обычно, по меньшей мере, равна ширине слова. Как правило, по крайней мере в тех архитектурах, которые поддерживает Linux, адресное пространство памяти равно размеру слова [2]. Следовательно, размер указателя равен размеру слова. Кроме того, размер типа C long равен размеру слова, тогда как размер типа int иногда меньше размера слова. Например, Альфа имеет 64-битный размер слова. Следовательно, регистры, указатели и тип long имеют длину 64 бита. Тип int, однако, имеет длину 32 бита. Альфа может получить доступ и манипулировать 64 битами по одному слову за раз.
Далее читайте: http://www.makelinux.com/books/lkd2/ch19lev1sec2
WORD
в Windows APIs означает 2 байта.
Первоначально он использовался для ссылки на размер указателя (как в CPU с длиной слова 16 бит).
API-интерфейсы Windows использовали его в typedefs
обратно (и до) Windows 3.1 (которая поддерживала только 16-битные машины), поэтому значение больше не может измениться.
WORD
вероятно из более старого кода и обычно означают 16-бит DWORD
обычно означает 32-битный. Если вы не уверены, вы должны проверить свой код, потому что они должны быть определены где-то.
WORD
Происходит от машинного слова, размер которого зависит от аппаратного обеспечения.