А может существует универсальный вариант со Stringizing Operator (#) внутри #define? Я немного попытался, но с первого раза не получилось. Может кто-нить знает как? Пускай даже это будет выглядеть немного криво, но лишь бы работало.
Дело в том, что в asm() внутри одной строки можно её порезать на несколько строк типа asm("MOV " "R15" ",R14") и компилятор это нормально переварит.
Вот такой вариант у меня почему-то не работает, хотя выглядит логично. #define ADD_STR_DEF(a) #a asm("CMP R10,#" ADD_STR_DEF(BUF_LIMIT));
причём вот так вот компилит как надо: asm("CMP R10,#" ADD_STR_DEF(128));
То есть при использовании # внутри дефайна, параметр не заменяется на предефайненый, а используется как строка.
Сообщение отредактировал GetSmart - Nov 4 2009, 22:54
--------------------
Заблуждаться - Ваше законное право :-)
|