Filename and line information

来自cppreference.com

 
 
C++语言
表达式
替代表示
字面量
布尔型 - 整型 - 浮点型
字符型 - 字符串 - nullptr (C++11)
用户定义 (C++11)
Utilities
属性 (C++11)
Types
typedef声明
类型别名声明 (C++11)
Casts
隐式类型转换 - 显示类型转换
static_cast - dynamic_cast
const_cast - reinterpret_cast
内存分配
类特有的函数属性
explicit (C++11)
static
静态成员函数
模板
杂项
 
 
包括其他源文件后,立即指令到当前源文件的行.
原文:
Includes other source file into current source file at the line immediately after the directive .
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

目录

[编辑] 语法

#line lineno (1)
#line lineno "filename" (2)

[编辑] 解释

改变目前的预处理行号,lineno超越了这一点。展开的宏观__LINE__将扩大到lineno加上一些实际遇到的源代码行以来
原文:
Changes the current preprocessor line number to lineno. Expansions of the macro __LINE__ beyond this point will expand to lineno plus the number of actual source code lines encountered since.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
2)
改变当前的预处理文件名filename的宏观扩张__FILE__从这个角度会产生filename
原文:
Also changes the current preprocessor file name to filename. Expansions of the macro __FILE__ from this point will produce filename.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
任何预处理标记(宏常数或表达式)都可以作为参数#line,只要他们扩大到一个有效的十进制整数,可以有效的字符串
原文:
Any preprocessing tokens (macro constants or expressions) are permitted as arguments to #line as long as they expand to a valid decimal integer optionally following a valid character string.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 注释

使用此指令在这种情况下,一些自动代码代工具它产生Ç+ +源文件从另一种语言编写的文件。#line指令插入在的产生Ç+ +文件引用的行数和在文件名的原(人可编辑)源文件
原文:
This directive is used by some automatic code generation tools which produce C++ source files from a file written in another language. In that case, #line directives may be inserted in the generated C++ file referencing line numbers and the file name of the original (human-editable) source file.
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

[编辑] 示例

#include <cassert>
#define FNAME "test.cc"
int main()
{
#line 777 FNAME
        assert(2+2 == 5);
}

输出:

test: test.cc:777: int main(): Assertion `2+2 == 5' failed.