|
Есть программка (все предельно упрощено):
//----------------------- #define MENU_ITEM( name, str1 )\ //MENU_ITEM( test_test, "Cycle" ); void main( void ) Не компилируется. Строку Что могут посоветовать благородные доны? Нужно подавать на вход макроса либо одну строку, либо другую в зависимости от объявленного либо в свойствах проекта, либо через #define идентификатора. Макрос объявляет char [] в памяти команд. Решение заменить
E-mail:
info@telesys.ru
#include
#define Is_in_english 1
const char __flash name[] = { str1 };
MENU_ITEM( test_test, ( Is_in_english ? "Cycle" : "Цикл" ) )
{
printf( "\n%s\n", test_test );
}
//-----------------------
MENU_ITEM( test_test, ( Is_in_english ? "Cycle" : "Цикл" ) )
комментируем, раскомментируем
//MENU_ITEM( test_test, "Cycle" );
все собирается.
const char __flash name[] = { str1 };
на
const char __flash *name = str1;
не устраивает, т.к. такое IAR 2.28 не собирает.
Ответы