905

5 分钟

#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

创建于 2025/9/1

更新于 2025/9/3