【发布时间】:2019-02-02 10:03:07
【问题描述】:
我有以下宏:
#define F(Args, ...) \
// macro definition
#
F(()) // looks like usage?
#undef F
仅包含# 的行是什么意思? F(()) 是宏的用法吗?
【问题讨论】:
我有以下宏:
#define F(Args, ...) \
// macro definition
#
F(()) // looks like usage?
#undef F
仅包含# 的行是什么意思? F(()) 是宏的用法吗?
【问题讨论】:
从技术上讲,这不是宏的一部分(之前没有续行)。
这是在#define 指令之后的指令。
# 在自己的行中称为null directive,它什么也不做(就像评论一样好)。
它实际上不再有用(除了作为视觉标记),但在史前 C 中,预处理器仅在 C 源文件以指令开头并且放置在 C 文件开头的空指令时才被调用确保文件被预处理(即,以后的指令有效)而不从具体指令开始的方法。
【讨论】: