是否可以这样做:
#define F(x) \
#ifdef DOUBLE \
2*x \
#else \
x \
#endif
所以当我使用 F
时,它扩展到什么取决于是否定义了宏 DOUBLE
?我不这么认为,但我充满希望。 GNU 扩展很好。
编辑 作为对一些答案的回应,我真的用它来生成一些代码,其中代码根据定义的位置而略有不同。由于包含某些文件的顺序以及需要定义相关宏的位置,以这种方式切换它需要一些因素。我可能不得不这样做,但如果我不必从这个角落卸掉自己的油漆,我会很高兴!
最佳答案
怎么了
#ifdef DOUBLE
#define F(x) (2 * (x))
#else
#define F(x) (x)
#endif
关于c - 宏依赖宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4927976/