Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么c+中仍然存在#行预处理器指令+;预处理文件? 我知道预处理器的任务是处理C++程序的所有预处理器指令,准备好编译的代码。但我发现#行指令几乎存在于所有预处理文件中。编译器在编译代码时如何理解预处理器指令 为什么C++预处理文件中仍然存在一行预处理器指令?_C++_Preprocessor_Preprocessor Directive - Fatal编程技术网

为什么c+中仍然存在#行预处理器指令+;预处理文件? 我知道预处理器的任务是处理C++程序的所有预处理器指令,准备好编译的代码。但我发现#行指令几乎存在于所有预处理文件中。编译器在编译代码时如何理解预处理器指令 为什么C++预处理文件中仍然存在一行预处理器指令?

为什么c+中仍然存在#行预处理器指令+;预处理文件? 我知道预处理器的任务是处理C++程序的所有预处理器指令,准备好编译的代码。但我发现#行指令几乎存在于所有预处理文件中。编译器在编译代码时如何理解预处理器指令 为什么C++预处理文件中仍然存在一行预处理器指令?,c++,preprocessor,preprocessor-directive,C++,Preprocessor,Preprocessor Directive,因为编译器需要关于在预处理器扩展指令之前代码所在行的信息。该信息用于报告错误所在的确切文件、行和列的诊断消息 编译器在编译代码时如何理解预处理器指令 我不确定#line在技术上是否是预处理器指令。但编译器理解它的原因与它理解任何东西的原因相同:实现编译器的聪明人让它工作。预处理器输出被设计为由匹配的编译器读取,预处理器如何将元数据传递给编译器不是由C++标准定义的,你说的是关于诊断消息的,但是除了保留原始行编号之外,还有更多的代码< >行>代码>。它还可以更改行号(和文件命名),这是它的主要用途

因为编译器需要关于在预处理器扩展指令之前代码所在行的信息。该信息用于报告错误所在的确切文件、行和列的诊断消息

编译器在编译代码时如何理解预处理器指令


我不确定
#line
在技术上是否是预处理器指令。但编译器理解它的原因与它理解任何东西的原因相同:实现编译器的聪明人让它工作。

预处理器输出被设计为由匹配的编译器读取,预处理器如何将元数据传递给编译器不是由C++标准定义的,你说的是关于诊断消息的,但是除了保留原始行编号之外,还有更多的代码< >行>代码>。它还可以更改行号(和文件命名),这是它的主要用途。主要用于生成C代码的编译器前端。编译C代码时,您希望诊断和调试信息参考原始源代码,而不是生成的C代码。(是的,这在技术上是一个预处理器指令)嗨,皮特·贝克尔。。。是否还有其他类似于#line的预处理器指令仍然存在于预处理文件中。。?