Я использую IAR Embedded Workbench для ARM (ARM7TDMI-S), и большая часть моей работы выполняется в формате little-endian. Тем не менее, я видел в руководстве, что я могу сделать что-то вроде:
__big_endian int i, j;
чтобы объявить эти две переменные с прямым порядком байтов (в то время как остальная часть приложения с прямым порядком байтов). Это кажется фантастической функцией, но когда я пытаюсь скомпилировать, я всегда получаю ошибку:
Error[Pa002]: the type attribute "__big_endian" is not allowed on this declaration.
Верхняя порядковая строка выше скопирована непосредственно из руководства, но она не работает. Это отличная особенность компилятора, которая облегчит жизнь. Есть идеи, как заставить это работать?
У меня установлено соответствие языку «Разрешить расширения IAR» на вкладке «Параметры компилятора C / C ++» в параметрах IDE.