C++学习笔记12_各种文件和引入

预处理->编译->汇编->链接->.exe

预处理:

①将所有的“#define”删除,并且展开所有的宏定义

②处理所有的条件编译指令,如:“#if”、“#ifdef”、“#elif”、“#else”、“endif”等。

③处理“#include”预编译指令,将被包含的文件插入到该预编译指令的位置。

(注意:这个过程可能是递归进行的,也就是说被包含的文件可能还包含其他文件)

也就是说,预处理,主要是根据各种#,决定如何进行展开。

涉及文件.h,如果遇到#include<xxxx.h> ,那么,就在这个位置将头文件的内容展开。

这就说明,为什么有些.h文件,要比其他文件先#include了,因为根据C++的德性,没先声明的话,后面的要用到它,那么会出错。

#include<xxxx.h>是直接展开的,如果其他文件也#include<xxxx.h>,那么就展开了好多次,那么就相当于声明了好多次,那么就会出错。

所以,在头文件中,要么写#pragma once,要么:

猜你喜欢

转载自www.cnblogs.com/pylblog/p/9855218.html