[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
миниатюрный аудио-видеорекордер mAVR

Отправлено dsdsds 31 июля 2002 г. 16:03
В ответ на: Хех, она и в IAR'е тоже порылась.... :-) отправлено A V R 31 июля 2002 г. 09:05

Формально(по стандарту) текст программы сначала обрабытывается препроцессором, а ему размеры типов неизвестны, потому sizeof и не работает в директивах препроцессора. А проблема разного размера стандартных типов у компиляторов решается подключением файла limits.h (должен поставляться с компилятором). В нем #define -ом определена INT_MAX и можно писать #if INT_MAX > ....

А в хелпе на IAR по этому поводу написано:
Other extensions

$ character

The character $ has been added to the set of valid characters in identifiers for compatibility with DEC/VMS C.

Use of sizeof at compile time

The ANSI-specified restriction that the sizeof operator cannot be used in #if and #elif expressions has been eliminated.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru