使用宏命名C中的函数

时间:2018-04-24 12:59:24

标签: c macros

前几天我试图用宏来定义一个像这样的函数(显然是简化的):

#define DEF_ADD(name) \
    int add_name(int x, int y) { \
        return x + y; \
    } \

现在,我希望代码段DEF_ADD(hello)定义函数add_hello。但是,宏调用定义了一个名为add_name的函数。我希望这与扫描有关,但我找不到重建我正在寻找的行为的方法。任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:9)

你需要

#define DEF_ADD(name) \
    int add_##name(int x, int y) { \
    return x + y; \
}

请注意##。我也删掉了最后的换行符。否则,不使用参数name,您可以创建add_name作为函数名称。