私はこのCマクロを持っています:
#define syscall(number) \
({ \
asm volatile ( \
".set noreorder\n" \
"nop\n" \
"syscall "#number"\n" \
);\
})
整数で呼び出すとうまく機能します。
syscall(5);
しかし、私がこのようなことをするとき:
#define SYSCALL_PUTC 5
syscall(SYSCALL_PUTC);
このエラーが発生します:
エラー:命令syscallには絶対式が必要です
これを回避するにはどうすればよいですか?コードに魔法数を散らかしたくありません。