请考虑以下代码:
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
Run Code Online (Sandbox Code Playgroud)
这段代码似乎没有用,这是因为它只是我真实代码的一部分,简化了.问题是: - 如何说服预处理器先执行5-5(只是数学运算的一个例子),并将结果(在本例中为零)连接到XFUNC_?因为它现在不起作用,它告诉我"预处理器指令后面的意外令牌 - 期望换行",在第8行.更新:看来是正确的,上面的代码将是简单的代码替换结果XFUNC_5-5.但在这种情况下,我还有另一个问题: - 确实存在一种方法来获得像宏这样的函数或接受输入(参数)表达并输出数字的东西; 我想也许类似于你放置连续数字的向量:你把索引(这可能是一个完整的表达)你得到的结果是相同的,除了现在不是表达而是"纯"数字然后可以连接