[英]Using macros to name functions in C
前几天,我试图使用宏来定义这样的函数(显然是简化的):
#define DEF_ADD(name) \
int add_name(int x, int y) { \
return x + y; \
} \
现在,我希望代码段DEF_ADD(hello)
定义函数add_hello
。 但是,宏调用定义了一个名为add_name
的函数。 我希望这与扫描有关,但我找不到重新创建所需行为的方法。 任何想法如何做到这一点?
你需要
#define DEF_ADD(name) \
int add_##name(int x, int y) { \
return x + y; \
}
注意##
。 我还删除了最后一个换行符。 否则,不使用参数name
,而是将add_name
创建为函数名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.