C/C++文件
C/C++程序文件包括 .h .c .hpp .cpp,其中源文件(.c .cpp)是基本的编译单元,头文件(.h .hpp)不会被编译器编译。
C/C++项目构建(build)过程,分为以下几个步骤 预处理 → 编译 → 链接。
预编译
预编译的过程可以理解为编译器(实际上是预处理器,这里统称为编译器就可以了)在正式编译之前处理C/C++文件中的预处理命令,即#开头的代码。
常用的几个预处理命令如下:
#include ......
#ifdef ...... #else......#endif
#define ......
#pragma ......
举个例子,下面是个很简单的类定义:
MyClass.h

MyClass.cpp

预编译完成后的样子:

可以看到编译器把.h文件替换到了.cpp文件中的#include 位置上,把DEFAULT_VALUE定义的值也替换到了相应的位置。
编译
预编译之后,编译器会编译每个源文件(.c .cpp),如果编译成功,会生成对应的目标文件,Linux为.o文件,Windows平台下为.obj文件。

本文详细介绍了C/C++的编译和链接过程,包括预处理(如#include、宏定义等)、编译(生成.o文件、函数名 Mangling)和链接(解决函数和变量的引用)。同时,文章探讨了头文件的作用,编译错误和链接错误的常见类型及解决方案,并特别强调了模板类和静态成员变量的处理方式。对于C/C++开发者,理解这些基础知识能更好地管理和避免编程中遇到的问题。
最低0.47元/天 解锁文章
1498

被折叠的 条评论
为什么被折叠?



