约 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/3

作者: PlanC

创建: 2025/9/1