• 深入理解C++对象模型(三)

    Data语义学一、数据成员的绑定考虑下面的代码: 12// 某个foo.h头文件,从某处含入extern float x; 1234567891011// Point3d.h文件class Point3d{public: Point3d...
  • 深入理解C++对象模型(二)

    构造函数语义学一、默认构造函数的构造操作C++中对于默认构造函数的解释是:默认的构造函数会在需要的时候被编译器产生出来。如下述实例所示,正确的程序语意要求Foo有一个默认构造函数,可以将它的两个成员初始化为0。那上述实例会合成出一个默认构造函数吗? ...
  • 深入理解C++对象模型(一)

    第一章:关于对象在C语言中,“数据” 和“处理数据的操作 (函数)” 是分开来声明的,也就是说,语言本身并没有支持“数据和函数” 之间的关联性。我们把这种程序方法称为程序性的(procedural),由一组 “分布在各个以功能为导向的函数中” 的算 ...
  • 静态链接

    静态链接程序设计的模块化是人们一直在追求的目标,因为当一个系统十分复杂的时候,我们不得不将一个复杂的系统逐步分割成小的系统以达到各个突破的目的。一个软件亦是如此,人们把每个源代码模块独立地编译,然后按照需要将它们“组装“起来,这个组装模块的过程就是链...
  • ELF

    ELF文件结构描述一个 ELF 文件通常有ELF文件头、段表、字符串表、符号表等组成,其总体结构如下图所示。不同的文件部分描述不同的文件内容: ELF文件头(ELF Header),它包含了描述整个文件的基本属性,如ELF文件版本、程序入口地址等。...
  • 目标文件有什么

    目标文件里有什么目标文件的格式现在PC平台流行的可执行文件格式(Executable)主要是Windows下的PE(Portable Executable)和Linux的ELF(Executable Linkable Format),它们都是COFF...
  • 编译和链接

    对于平常的应用程序开发,我们很少需要关注编译与链接过程。因为通常的开发环境都是流行的集成开发环境(IDE),比如Visual Studio等。这样的IDE一般都将编译和链接的过程一步完成,通常这种编译和链接合并到一起的过程为构建(Build)。但是在...