顾名思义,预定义宏就是已经预先定义好的宏,我们可以直接使用,无需再重新定义。
ANSI C 规定了以下几个预定义宏,它们在各个编译器下都可以使用:
- __LINE__:表示当前源代码的行号;
- __FILE__:表示当前源文件的名称;
- __DATE__:表示当前的编译日期;
- __TIME__:表示当前的编译时间;
- __STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;
- __cplusplus:当编写C++程序时该标识符被定义。
预定义宏演示:
- #include <stdio.h>
- #include <stdlib.h>
- int main() {
- printf("Date : %s\n", __DATE__);
- printf("Time : %s\n", __TIME__);
- printf("File : %s\n", __FILE__);
- printf("Line : %d\n", __LINE__);
- system("pause");
- return 0;
- }
VS下的输出结果:
Date : Mar 6 2016
Time : 11:47:15
File : main.c
Line : 8
C-Free 5.0 下的输出结果:
Date : Mar 6 2016
Time : 12:12:59
File : C:\Users\mozhiyan\Desktop\demo.c
Line : 8