c++ - 预处理器输出文件是否为有效的 C/C++ 文件

标签 c++ c-preprocessor

我有 2 个文件作为 qwe.h

#ifndef QWE_H
#define QWE_H
//#include <iostream>
int asd();
#endif

qwe.cc

#include "qwe.h"
int asd()
{
std::cout<<"asdasd";
}

仅作为 g++ -E qwe.cpp > op4 运行预处理器 给出以下输出

# 1 "qwe.cpp"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "qwe.cpp"
# 1 "qwe.h" 1




int asd();
# 2 "qwe.cpp" 2
int asd()
{
 std::cout<<"asdasd";
}

预处理器输出不应该是有效的 C/C++ 文件吗? 语句“# int string int”的含义是什么

最佳答案

它们是行号,用于跟踪文件在其他文件中的位置,这在生成编译器警告和错误时很有用。

参见 this article在维基百科上。

关于c++ - 预处理器输出文件是否为有效的 C/C++ 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17527099/

相关文章:

c++ - #定义映射

c++ - OpenMP 是否将已完成部分的重用线程用于另一个部分?

c++ - 以任意顺序加入多个线程

c++ - 部分特化显式模板特化

c++ - 如何在 C++ 中进行网络 IP 扫描?

c++ - 使 Control-C 表现得像未捕获的异常

c++ - 如何在#ifdef 中添加 'or' 条件

c++ - 是否可以创建一个宏来在 C/C++ 中创建一致的函数声明?

检查#warning预处理器的可用性

c++ - 我可以在 #define 函数中使用 Visual Studio 调试器吗?