lon*_*ger 3 c macros c-preprocessor
#define LED1_ON() { /* twiddle port bit */ }
#define LED2_ON() { /* twiddle port bit */ }
// ...
#define LED9_ON() { /* twiddle port bit */ }
#define LED_ON(x) LED##x_ON()
Run Code Online (Sandbox Code Playgroud)
我想使用上面的代码(或类似的东西)来(例如)LED_ON(1)调用宏LED1_ON(),或LED_ON(2)调用宏LED2_ON().
我相信有可能让cpp这样做,但显然我没有正确的语法.有没有人知道使这成为可能的语法?
在我调用的行上LED_ON(2),gcc给出了错误消息:
undefined reference to `LEDx_ON'
Run Code Online (Sandbox Code Playgroud)
Chr*_*odd 14
你需要定义LED_ON为
#define LED_ON(x) LED##x##_ON()
Run Code Online (Sandbox Code Playgroud)
你想拿参数x并粘贴LED前缀和_ON后缀.