为了进行调试,我可以在C/C++编译器中获得行号吗?
e.g
if(!Logical)
printf("Not logical value at line number %d \n",LineNumber);
// How to get LineNumber without writing it by my hand?(dynamic compilation)
为了进行调试,我可以在C/C++编译器中获得行号吗?
e.g
if(!Logical)
printf("Not logical value at line number %d \n",LineNumber);
// How to get LineNumber without writing it by my hand?(dynamic compilation)
您应该使用预处理器宏__LINE__
和__FILE__
.它们是预定义的宏,是C/C++标准的一部分.在预处理过程中,它们分别被一个常量字符串替换,该字符串包含一个表示当前行号的整数和当前文件名.
其他预处理器变量:
__func__
:函数名称(这是C99的一部分,不是所有C++编译器支持的)__DATE__
:格式为"Mmm dd yyy"的字符串__TIME__
:形式为"hh:mm:ss"的字符串您的代码将是:
if(!Logical)
printf("Not logical value at line number %d in file %s\n", __LINE__, __FILE__);