c++的工程文件的编译顺序
来源:互联网 发布:永久中立国的意义 知乎 编辑:程序博客网 时间:2024/06/03 10:53
以前一直以为,vs在编译c++文件时候是从头文件开始编译的,而每个头文件对应的源文件只是头文件定义中的一些实现而已,源文件不参与编译。
今天经过同学指点并实践之后才发现,其实不是这样的,从中受益颇多:
c++编译的时候实际上只编译源文件,而不编译头文件;编译源文件的时候实际上是 在#include <>或者#include " "的地方,把包含的头文件中的
代码直接拷贝到源文件中进行编译,如果没有#include一个头文件,则在这个头文件中随便写什么东西都可以,如在test.h头文件中:
#include "../chang/chang01.h"
namespace changchang {
int a;
在test.cpp中:
#include <iostream>
//#include <test.h>
using namespace std;
void main()
{
}
在这里,如果在test.cpp中注释掉包含test.h的语句,则编译不会报错顺利通过。如果不注释掉,则因为包含头文件时候,在这行包含语句的地方会
把头文件中所有的东西拷贝到这里进行编译,而头文件中又是各种乱七八糟的不符合语法的东西,所以就会报错。
在这里学到的东西就是:
1. c++实际上是只编译源文件的
2. c++源文件中在包含头文件的地方,将被包含头文件中的代码全部拷贝进去进行编译;
3. 包含头文件是有顺序的,因为包含头文件的顺序意味着该头文件在源文件进行展开的顺序。
0 0
- c++的工程文件的编译顺序
- c++的工程文件的编译顺序
- 编译F#多文件工程的文件顺序问题
- iOS工程里添加C文件造成的编译错误
- iOS工程里添加C文件造成的编译错误
- iOS工程里添加C文件造成的编译错误
- C语言编译的顺序。关于 .c 文件 .h 文件的用法。Makefile文件简单概念。
- lua51的编译工程文件(VC71编译)
- eclipse c 编译工程(已有makefile文件的完整工程)
- 多.c文件和.h文件工程的.c文件和.h文件的编译工作过程?
- winCE6.0 目录下工程的编译顺序
- winCE6.0 目录下工程的编译顺序
- winCE6.0 目录下工程的编译顺序
- winCE6.0 目录下工程的编译顺序
- 选出参加工程编译的所有文件
- 编译QT时的工程文件pro
- 做了一个在MFC的工程中编译C文件的实验
- Unity3D中脚本的执行顺序和编译顺序(vs工程引用关系)
- nyoj 525 一道水题
- 程序员必须知道的几个Git代码托管平台
- OpenLayers 如何管理多控件的激活
- JavaScript一些细节知识
- JZ2440开发板学习------中级(二十六:上)
- c++的工程文件的编译顺序
- 解决wp的插件all-in-one-seo-pack被百度收录失败的问题
- Java Web中的编码问题(一)
- 各种排序算法、java实现
- coreos网络管理工具flannel
- Android AIDL使用详解
- godot 中创建一个新项目
- 嵌入式实时操作系统μC/OS-II在STM32处理器移植
- 指针函数和函数指针