预处理器宏替换

预处理器宏替换,第1张

概述#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() 我想使用上面的代码(或类似的东西)来(例如)LED_
#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()

我想使用上面的代码(或类似的东西)来(例如)LED_ON(1)调用宏LED1_ON()或LED_ON(2)调用宏LED2_ON().

我相信有可能让cpp这样做,但显然我没有正确的语法.有没有人知道使这成为可能的语法?

在我调用LED_ON(2)的行上,gcc给出错误消息:

undefined reference to `LEDx_ON'
解决方法 您需要将LED_ON定义为

#define LED_ON(x)  LED##x##_ON()

你想把参数x和粘贴在一个LED前缀和一个_ON后缀上.

总结

以上是内存溢出为你收集整理的预处理器宏替换全部内容,希望文章能够帮你解决预处理器宏替换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1220009.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存