2012-03-29 3 views
0

Можно ли сказать, что ширина типа данных int зависит от ширины данных ALU? Например, правильно ли сказать, что 32-разрядный процессор будет иметь тип данных int как 32-битный? Аналогично для 16 бит и 8 бит (обратите внимание, что C гарантирует, что размер int не менее greater than 16 bit).Ширина типа данных int на машине

+0

Многие процессоры не имеют отдельных ALU в течение некоторого времени, поэтому вы не можете использовать это как ссылку. Вместо этого было бы лучше использовать внутреннюю ширину шины данных процессора. –

+1

проверьте ссылку: http://stackoverflow.com/questions/2331751/does-the-size-of-an-int-depend-on-the-compiler-and-or-processor – Vijay

+0

вот еще один, почти дубликат : http://stackoverflow.com/questions/9689049/what-decides-the-sizeof-an-integer –

ответ

4

Нет, это зависит от реализации. Например, многие компиляторы для 64-битных систем все еще имеют 32-битную шину.

+0

Кроме того, 16-битные компиляторы были использованы в 386+ в течение длительного времени. – ninjalj

+0

И 8-разрядные компиляторы обычно имеют 16-битные int. – Lundin

1

Возможно, вам придется обратиться к документации вашего компилятора относительно определения размера примитивного типа, поскольку детали примитивных типов и встроенных операторов, такие как sizeof, будут специфичны для компилятора. В конце концов, вероятно, он будет напрямую связан с деталями аппаратного обеспечения, но я считаю, что C находится на более высоком уровне абстракции, чем о себе с деталями ALU.