题目:如何输出源文件的标题和目前执行行的行数
答案:int line = __LINE__;
char *file = __FILE__;
cout<<"file name is "<<(file)<<",line is "<<(line)<<endl;
ANSI C标准中有几个标准预定义宏:
__LINE__:在源代码中插入当前源代码行号;
__FILE__:在源文件中插入当前源文件名;
__DATE__:在源文件中插入当前的编译日期
__TIME__:在源文件中插入当前编译时间;
__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;
__cplusplus:当编写C++程序时该标识符被定义。
这里我们根据题目用到的是“__LINE__”和“__FILE__”。
执行结果如下图,当前源文件名是../test/main.cpp,目前执行行的行数是第九行,我一开始不理解这个行数是指什么,我换了几次“int line = __LINE__;”这一行代码的行位置,发现编译结果是随着这一行代码的位置而变化的。