行号修改指令(#line)可以更改当前行的行号及文件名。格式为:
#line 行号
#line 行号 "文件名"
例如:
#include <stdio.h>
int main(void)
{
printf("当前位置 %s:%d\n", __FILE__, __LINE__);
// 仅修改行号
#line 100
printf("当前位置 %s:%d\n", __FILE__, __LINE__);
// 修改行号和文件名
#line 200 "custom.c"
printf("当前位置 %s:%d\n", __FILE__, __LINE__);
return 0;
}
运行结果:
当前位置 main.c:5
当前位置 main.c:100
当前位置 custom.c:200
C17 standard (ISO/IEC 9899:2018):
6.10.4 Line control (p: 126)
C11 standard (ISO/IEC 9899:2011):
6.10.4 Line control (p: 173)
C99 standard (ISO/IEC 9899:1999):
6.10.4 Line control (p: 158)
C89/C90 standard (ISO/IEC 9899:1990):
3.8.4 Line control