常用预处理标识符有
__LINE__
__FILE__
__DATE__
__TIME__
可以当作变量直接使用,一般作用程序调试
1.__LINE__ :表示当前文件所在行号
2.__FILE__:表示当前源文件所在的目录
3.__DATE__:文件被编译的日期
4.__TIME__:当前文件编译的时间
#include
int main()
{
printf("%d\n", __LINE__);
printf("%s\n", __FILE__);
printf("%s\n", __DATE__);
printf("%s\n", __TIME__);
return 0;
}
运行结果如下
4.#:将一个宏参数转换为一个字符串
#include
#define X 28
#define PRINT( FORMAT, VALUE ) printf("the value of "#VALUE" is " FORMAT"\n", VALUE)
int main()
{
PRINT("%d", X);
return 0;
}
运行结果
5.##:具有连接字符串的作用,执行完A##B后变为AB
#include
#define STR1 "Hi"
#define STR2 ",you"
#define STR1STR2 "thank you!"
#define CAT(a,b) a##b
int main()
{
printf("%s\n", CAT(STR1, STR2));
return 0;
}