[an error occurred while processing this directive]
1) где-нить хранить длину. 2) strlen, если в конце ноль всегда есть.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
SM
22 сентября 2005 г. 10:06
В ответ на:
как на си получить размер массива ? (+)
отправлено <font color=gray>evro</font> 22 сентября 2005 г. 10:02
Составить ответ
|||
Конференция
|||
Архив
Ответы
спасибо strlen подходит, интересно почему sizeof в таких случаях не работает
—
evro
(22.09.2005 10:19
194.186.224.99
,
пустое
)
По его определению. Он вычисляет размер объекта на этапе компиляции.
—
SM
(22.09.2005 10:22
213.141.159.26
,
пустое
)
Жаль, что не на этапе препроцессинга, иногда бывает нужно выровнять размер объекта на какую либо границу. Для препроцессора sizeof() - функция, а для компилера - константа. Если бы отцы-основатели заложили в стандарт два прохода при компиляции, жить было бы чуть легче :)
—
2005
(22.09.2005 13:43
80.78.35.16
,
пустое
)
Да препроцессору вообще все пофигу - он только текст подставляет.
—
SM
(22.09.2005 14:02
195.225.131.183
,
пустое
)
Вот и я о том же. Если бы препроцессор мог пользоваться sizeof() для получения размера типа, было бы немного проще выравнивать, скажем коммуникационные пакеты, на границу параграфа
—
2005
(22.09.2005 16:57
80.78.35.16
,
пустое
)
Зависит от компилятора. Вот например IAR C для MSP430 (по крайней мере версии 1.25A) прекрасно понимает sizeof.
—
vmp
(22.09.2005 17:07
62.117.78.2
,
пустое
)
А msp V3.30A/W32 [Evaluation] (3.30.1.1) уже ругается
—
2005
(22.09.2005 17:50
80.78.35.16
, 149 байт)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru