Я хочу создать макрос 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
инструкций.Я играл с макро-аргументами и тому подобным, но пока не получилось.Как мне написать такой макрос?