C++ 在宏定义中,空#是什么意思?

C++ 在宏定义中,空#是什么意思?,c++,c,macros,C++,C,Macros,我有以下宏: #define F(Args, ...) \ // macro definition # F(()) // looks like usage? #undef F 仅包含#的行是什么意思?F(())是宏的用法吗?从技术上讲,这不是宏的一部分(前面没有续行)。 它是#define指令之后的一个指令 #在它自己的行中被称为a,它什么也不做(和注释一样好) 它不再实际有用(除了作为视觉标记),但在史前C中,只有当C源文件以指令开始,并且放置在C文件开头的null指令是确保文件

我有以下宏:

#define F(Args, ...) \
   // macro definition
#
   F(()) // looks like usage?
#undef F

仅包含
#
的行是什么意思?
F(())
是宏的用法吗?

从技术上讲,这不是宏的一部分(前面没有续行)。 它是
#define
指令之后的一个指令

#
在它自己的行中被称为a,它什么也不做(和注释一样好)


它不再实际有用(除了作为视觉标记),但在史前C中,只有当C源文件以指令开始,并且放置在C文件开头的null指令是确保文件被预处理的好方法(即,以后的指令起作用)时,才会调用预处理器没有具体的指令。

我想它甚至可以用来混淆代码further@StackDanny是的,这可能被视为不必要的混淆。我知道预处理并不总是C编译的自动部分,但我不知道预处理器是如何工作的。美好的