Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
"SIZEOF(OBJECT) выдает целое, равное размеру указанного объекта. (Размер определяется в неспецифицированных единицах, называемых "байтами", которые имеют тот же размер, что и переменные типа CHAR)." - Крниган, Ричи.
Отправлено
Леонид Иванович
22 февраля 2008 г. 16:13
В ответ на:
"массив" в С - штука интересная. Если взять только имя массива, то в выражениях, где ожидается указатель - это указатель на его первый элемент (в том числе структуру, другой массив - т.е. не на байт, а именно на элемент), а если это имя стоит в sizeof - то возвращается размер массива в единицах sizeof(char) (а не в байтах) с учётом выравнивания элемента массива (+)
отправлено ReAl 22 февраля 2008 г. 15:36
Составить ответ
|
Вернуться на конференцию
Ответы
Конечно. Но только размер стурктуры в общем случае не равен сумме размеров её элементов. Поэтому при выравнивании на два "байта" sizeof(int)==2 для указанной структуры из int + char возвращённое sizeof будет 4 а не 3 и дальше с массивом аналогично.
—
ReAl
(22.02.2008 16:44:9
193.111.248.46
,
пустое
)
Тху. Ну не важно. Просто сейчас уже настолько привычно, что "байт == 8 бит", что и я стал на эту тему заедать.
—
ReAl
(22.02.2008 16:45:17
193.111.248.46
,
пустое
)
т.е. sizeof(char) == 1 по определению, но эта единичка может быть равна двум "нынешним байтам".
—
ReAl
(22.02.2008 16:51:59
193.111.248.46
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 654:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru