考虑以下代码:
1. #define SUFFIX 5-5
2. #define XFUNC_0( x ) (100 * x)
3. #define XFUNC_1( x ) (101 * x)
4. #define XFUNC_2( x ) (102 * x)
5. #define CATX( x, y ) x##y
6. #define CAT( x, y ) CATX( x, y )
7. #define XFUNC CAT( XFUNC_, SUFFIX )
8. #if XFUNC(2) == 200
...... etc
N. #endif
这段代码似乎不是很有用,这是因为它只是我真实代码的一部分,经过简化。问题是: - 我如何说服预处理器执行前 5-5(只是数学运算的一个示例)并将结果(在本示例中为零)连接到 XFUNC_?因为它现在不起作用,它在第 8 行告诉我“预处理器指令后出现意外标记 - 需要换行符”。更新:看起来正确,上面的代码将是简单的代码替换,结果为 XFUNC_5-5。但在这种情况下,我还有另一个问题: - 确实存在一种方法来拥有像宏这样的函数或接受作为输入(参数)表达式并输出数字的东西;我认为可能类似于放置连续数字的向量:放置索引(可能是整个表达式),结果相同,