Аргументы расширения макроса GCC внутри строки

У меня такая ситуация

#define PRE 0xF1

#define SR0 0B0000
#define SR1 0B0001
#define SR2 0B0010
#define SR3 0B0011

#define VIOTA(A0)  asm(".byte PRE, A0")

int main()
{
  VIOTA(SR1);
  return 0;
}

У меня есть макрос верхнего уровня, который расширяется, однако расширение содержит больше макросов. Они не расширяются и вызывают некоторые проблемы.

Я хочу, чтобы конечное расширение было

asm (". Byte 0xF1, 0B0000")

Здесь внутренние макросы были расширены. Я вообще не уверен, что делаю не так. Какие-нибудь советы?

6
задан Jimmy Cracked Corn 13 July 2011 в 22:58
поделиться