编译和链接(基础速通版)-CSDN博客https://blog.csdn.net/Jason_from_China/article/details/137182220
预定义符号
包含
C语⾔设置了⼀些预定义符号,可以直接使⽤,预定义符号也是在预处理期间处理的。
__FILE__ //进⾏编译的源⽂件
__LINE__ //⽂件当前的⾏号
__DATE__ //⽂件被编译的⽇期
__TIME__ //⽂件被编译的时间
__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义
举例
__FILE__ //进⾏编译的源⽂件
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
printf("文件夹所在位置__FILE__:\n%s\n\n\n", __FILE__);
return 0;
}
可以很清晰的看到这个预定义符号就是打找到文件在你电脑的位置。
__LINE__ //⽂件当前的⾏号
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
printf("文件当前的行号__LINE__:\n%d \n\n\n", __LINE__);
return 0;
}
文件当前所在的行号。
__DATE__ //⽂件被编译的⽇期
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
printf("文件被编译的日期__DATE__(也就是当前日期)__DATE__:\n%s \n\n\n", __DATE__);
return 0;
}
文件被编译出来的日期。如果你是当天编译是,显示的就是当天的日期,如果你今天编译明天看看的话,标注的是今天的日期。
__TIME__ //⽂件被编译的时间
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
printf("文件被编译的时间__TIME__(也就是当前时间)__TIME__:\n%s \n\n\n", __TIME__);
return 0;
}
文件被编译出来的时间。如果你是当天编译是,显示的就是当天的,如果你今天编译明天看看的话,标注的是今天的时间。就像这个,几分钟前编译的,香樟我要看看,自然显示之前的时间。
__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
printf("如果编译器遵循ANSI C,其值为1,否则未定义__STDC__:\n%s \n\n\n", __STDC__);
return 0;
}
这里子啊vs2022里面是不支持__STDC__的
预定义处理是在预编译阶段的就进行处理,预编译阶段就是预处理阶段
总结
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
printf("文件夹所在位置__FILE__:\n%s\n\n\n", __FILE__);
printf("文件当前的行号__LINE__:\n%d \n\n\n", __LINE__);
printf("文件被编译的日期__DATE__(也就是当前日期)__DATE__:\n%s \n\n\n", __DATE__);
printf("文件被编译的时间__TIME__(也就是当前时间)__TIME__:\n%s \n\n\n", __TIME__);
//printf("如果编译器遵循ANSI C,其值为1,否则未定义__STDC__:\n%s \n\n\n", __STDC__);
printf("文件当前的行号__LINE__:\n%d \n\n\n", __LINE__);
return 0;
}
不懂文件操作函数的,可以看一下
C语言-文件操作函数基础+进阶标准输入流输出流_小 l 得到了一个字符串,格式如下 yyyy/xx/xx。这是一个代表日期的字符串,但是已知-CSDN博客https://blog.csdn.net/Jason_from_China/article/details/137077273