【发布时间】:2012-03-27 12:42:24
【问题描述】:
我想制作一个 C 宏 (TRAMPOLINE_BLOCK),它采用预定义的宏常量 (TRAMPOLINE_LENGTH) 并写入那么多 asm volatile nop 指令。例如:
#ifdef __x86_64__
#define TRAMPOLINE_LENGTH 41
#define TRAMPOLINE_BLOCK \
({ \
asm volatile ( \
"nop\n" \
...
);\
})
#else
#define TRAMPOLINE_LENGTH ...
#define TRAMPOLINE_BLOCK ...
#endif
在这种情况下,TRAMPOLINE_BLOCK 应该有 41 个nop 指令。我一直在玩宏参数等,但还没有让它工作。我将如何编写这样的宏?
【问题讨论】:
标签: c gcc macros c-preprocessor