#C 语言的预处理行号修改指令 #line
行号修改指令(#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