在预处理命令中,#的使用很多。
1 所有预处理命令的标记。第一个字符都是#。
包括
#include
#if
#ifdef
#ifndef
#else
#endif
#undef
#error
#warning
#pragma
#line
等等。
2 在宏定义中,即#define中,#还有其他作用:
1) 单独的#,表示使用参数名。传递的参数将被当做字符串使用。
如
#define to_str(x) #x
当使用to_str(abcd)时,宏值为"abcd"
2) 使用##可以起到连接作用。
如
#define var(x) var_##x
当使用
int var(a);
等效定义
int var_a;