大佬教程收集整理的这篇文章主要介绍了C预处理器为生成的函数名定义,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
void CallBACk_SignalName1(void); void CallBACk_SignalName2(void); ...etc
一旦这些生成,我想定义一个宏,以允许它们被一般调用.我的想法是这样的,但我没有运行实现它…因为C预处理器采用宏的名称,而不是宏被定义为:
#define SIGNAL1 SignalName1 #define SIGNAL2 SignalName2 #define Function_name(signal) (void CallBACk_ ## signal ## (void)) ... ... Function_name(SIGNAL1) { .. return; }
问题是我收到的
void CallBACk_SIGNAL1(void)
代替
void CallBACk_SignalName1(void)
例如
#define SIGNAL1 SignalName1 #define SIGNAL2 SignalName2 #define MAKE_FN_NAME(X) void CallBACk_ ## x (void) #define Function_name(signal) MAKE_FN_NAME(signal) Function_name(SIGNAL1) { return; }
输出:
$gcc -E prepro.cc # 1 "prepro.cc" # 1 "<built-in>" # 1 "<command-line>" # 1 "prepro.cc" void CallBACk_SignalName1 (void) { return; }
以上是大佬教程为你收集整理的C预处理器为生成的函数名定义全部内容,希望文章能够帮你解决C预处理器为生成的函数名定义所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。