搜tecent 面试题 看到一个如下:
如何输出源文件的标题和目前执行行的行数
对这个完全没有概念,看过答案才知,原来是知识漏洞,然后也顺带简单了解了下 内置的宏定义 以及 c++ runtime library
内置宏:
__LINE__ 在源代码中插入当前源代码的行号
__FILE__ 源程序的完整路径
__DATE__ 系统日期
__TIME__ 系统时间
__TIMESTAMP__ 系统时间戳
__FUNCTION__ 所在的函数名字
其中__LINE__ 的解释 (在源代码中插入当前源代码的行号), 我使用一个例子
虽然目前还不太清楚这个性质的实现机制,但觉得有了这个宏之后 调试程序的话 会更方便了#include<iostream> #include <string> using namespace std; int main() { int line = __LINE__; string file = __FILE__; cout << line << endl; cout << (file) << endl; cout << __DATE__ << endl; cout << __TIME__ << endl; cout << __TIMESTAMP__ << endl; system("pause"); return 0; }
另外还要注意的就是LINE之前是两个下划线(英文半角)
三篇博文
利用__FILE__, __LINE__, __FUNCTION__ 跟踪调试程序