昨天苹苹让我看了我一道面试的试题,我觉得挺经典的,自己经常在使用,但是单独拿出来问,自己却还真的不知所措。
下面就以下的问题,我用代码实现一下。
输出源文件的标题,目前执行行的行数,编译的日期,编译的时间。
Linux下实现:
Linux下实现
#include <stdio.h>
intmain()
{
printf("当前代码行:%d\n",__LINE__);
printf("当前源代码文件名:%s\n",__FILE__);
printf("当前文件编译的日期%s\n",__DATE__);
printf("当前文件编译的时间%s\n",__TIME__);
return0;
}
Windows下实现:
Windows下实现
#include <stdio.h>
intmain()
{
printf("当前代码的行数:%d\n",__LINE__);
printf("当前源文件的文件名:%s\n",__FILE__);
printf("当前源文件的编译日期:%s\n",__DATE__);
printf("当前源文件的编译时间:%s\n",__TIME__);
printf("当前源文件的编译的具体时间:%s\n",__TIMESTAMP__);
return0;
}
上面用Linux和Windows两种环境进行了测试,他们的函数还是有区别的,例如Wingdows下有 __TIMESTAMP__这个变量,而Linux下没有。还有__FILE__这个变量在Linux下的运行结果直接是文件名,而Windows下这个变量的结果为其具体的路径。
以上的这两个例子我觉得主要运用在对源文件的调试中,如果用户的程序在执行过程中出错,可以将这些出错信息通过E-mail发送给程序员,程序员能够迅速的定位代码的出错位置。