Вопрос № 143015: Начал изучение visual c++ 2005 В книге нему написано, что тип int занимает 4 байта. В справке msdn проверил - то же самое. Это отличие си++ от си? Или это особенность studio?...
Вопрос № 143.015
Начал изучение visual c++ 2005 В книге нему написано, что тип int занимает 4 байта. В справке msdn проверил - то же самое. Это отличие си++ от си? Или это особенность studio?
Отправлен: 03.09.2008, 20:47
Вопрос задал: Warobushek (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Aristos
Здравствуйте, Warobushek! Разрядность (и размер) типа int не определен в стандартах этих языков (ни C, ни С++) и определяется компилятором и разрядностью системы. В стандарте имеется следущее условие связывающие размер целочисленных типов: sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) При этом: 1. тип char так же используется для представления символов ASCI и обычно имеет размер 1 байт. 2. тип long соответствует размеру адреса в памяти (sizeof(long) == sizeof(int*)) Остальное
остается на усмотрение компилятора. В старых книгах по С и С++ можно встретить упоминание о том, что sizeof(int) == 2. Это объясняется 16ти разрядной операционной системой (и компилятором, например BorlandC 3.1). В 32х системе (в большинстве распространенных компиляторов) размеры типов следущие: sizeof(char) == 1 sizeof(short) == 2 sizeof(int) == 4 sizeof(long) == sizeof(int*) == 4 В 64х системах есть разногласия по размеру int: sizeof(
char) == 1 sizeof(short) == 2 sizeof(int) == 4 или sizeof(int) == 8 sizeof(long) == sizeof(int*) == 8
В отношении простых типов данных С++ полностью совместим с С. Это одно из требований стандарта С++.
--------- нет ничего невозможного
Ответ отправил: Aristos (статус: 8-ой класс)
Ответ отправлен: 03.09.2008, 21:27 Оценка за ответ: 5 Комментарий оценки: Спасибо +)+)+)