[an error occurred while processing this directive]
|
Формально(по стандарту) текст программы сначала обрабытывается препроцессором, а ему размеры типов неизвестны, потому 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