C++ Primer Plus(九)——内存模型和名称空间
程序分成三部分: 头文件:包含结构声明和使用这些结构的函数的原型,使用#define或const定义的符号常量,类声明,模板声明,内联函数 只需将源代码文件加入项目中,而不用加入头文件;不要使用#include来包含源代码文件,这样将导致多重声明。 同一个文件中只能将同一个头文件包含一次,可以使用以下的防护方案。基于预处理器编译命令#ifndef,可以在没有使用#define定义某个特定名称时,处理#ifndef和#endif之间的语句。但这种方法并不能防止编译器将文件包含两次,而只是让他忽略除第一次外的所有内容。 源代码文件:包含与结构相关的函数的代码 源代码文件:包含调用与结构相关的函数的代码 C++标准允许每个编译器以他认为合适的方式实现名称修饰,因此不同编译器创建的对象代码文件很可能无法正确的连接。请确保所有对象文件都是由同一个编译器生成的。 C++的存储连续性:自动存储连续性、静态存储连续性、线程存储连续性、动态存储连续性 在C++11中,关键字auto用于自动类型判断,但在C语言和以前的C++版本中,auto的含义截然不同,它被用于显式指出变量为自动存储。在C++11中,这种用法不再合法。 在C++11前,关键字register用于建议编译器使用CPU寄存器来存储自动变量。在C++11中,关键字register这种提示作用失去,只用于显式指出变量是自动的。