我是编程的新手,我有一个运行的程序,但我需要为它显示行号。我可以使用C宏__LINE__
吗?如果是这样,我可以在哪里插入代码,如果不是,我可以做什么,以便程序打印出行号和代码?提前致谢。
答案 0 :(得分:2)
__LINE__
宏扩展为整数行号(源文件中的假定行号),因此您可以在任何可用整数的地方使用它:
printf ("This line is %d.\n", __LINE__);
来自C11 6.10.8.1 Mandatory macros
:
__LINE__
当前源行的假定行号(在当前源文件中)(整数常量)。
如果基于您的评论的情况,您只需要一个程序使用行号输出自己,我建议不使用__LINE__
。< / p>
相反,让程序记录它所在的行,并在行本身之前输出它可能会更好。例如,见:
#include <stdio.h>
int main (void) {
static char buff[100000];
int lineNum = 0;
FILE *fp = fopen (__FILE__, "r");
if (fp != NULL) {
while (fgets (buff, sizeof (buff), fp) != NULL) {
printf ("%7d: %s", ++lineNum, buff);
}
fclose (fp);
}
return 0;
}