ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
16464
Sla (10.11.2004 12:05, просмотров: 866)
Окаянный ?: Есть программка (все предельно упрощено): //----------------------- #include #define Is_in_english 1 #define MENU_ITEM( name, str1 )\ const char __flash name[] = { str1 }; //MENU_ITEM( test_test, "Cycle" ); MENU_ITEM( test_test, ( Is_in_english ? "Cycle" : "Цикл" ) ) void main( void ) { printf( "\n%s\n", test_test ); } //----------------------- Не компилируется. Строку MENU_ITEM( test_test, ( Is_in_english ? "Cycle" : "Цикл" ) ) комментируем, раскомментируем //MENU_ITEM( test_test, "Cycle" ); все собирается. Что могут посоветовать благородные доны? Нужно подавать на вход макроса либо одну строку, либо другую в зависимости от объявленного либо в свойствах проекта, либо через #define идентификатора. Макрос объявляет char [] в памяти команд. Решение заменить const char __flash name[] = { str1 }; на const char __flash *name = str1; не устраивает, т.к. такое IAR 2.28 не собирает.