【发布时间】:2016-05-08 22:21:03
【问题描述】:
我有许多格式为
的宏#define F(A,B) Some function of A and B
为了便于阅读,我想为这些宏定义参数,例如
#define C A,B
所以我可以说
F(C)
但是预处理器试图在 C 之前扩展 F 并抱怨 F 需要 2 个参数。有没有办法让它在扩展F之前扩展C,这样就不会发生错误?
【问题讨论】:
-
天哪,你不应该这样做。
-
我不明白有些人对预处理器的痴迷。只需将它用于简单的东西。编译器要好得多 - 它为初学者提供了类型安全性
-
如果你需要,从其他东西生成你的 C 代码。也许使用其他一些预处理器(例如
m4或gpp);这不是标准 C 预处理器的工作 -
@EdHeal 是的,我同意。我什至避免使用非宏变量函数。不过还是忍不住不回答。
-
在宏观问题中大声笑“为了可读性”:)