- 不要将函数定义或者变量声明放到头文件中。(变量声明除非用关键字extern,其它一律是定义)
- 头文件中常包含的内容有:
- 函数原型
- 使用#define或const定义的符号常量(const是作用域为本文件的常量)
- 结构声明
- 类声明
- 模板声明
- 内联函数
注:归结一点就是,不能重定义。但是可以重声明。(类定义也是不能重定义的,但是也放在头文件中) - 多个库的链接:两个编译器为同一个函数将会生成不同的修饰名称。名称的不同将使链接器无法将一个编译器生成的函数调用与另一个编译器生成的函数定义匹配。在链接编译模块时,请确保所有对象文件或库都是由同一个编译器生成的。如果有源代码,通常可以用自己的编译器重新编译源代码来消除链接错误。
- 自动存储变量——即所谓的局部变量
- 链接性(linkage)描述了名称如何在不同单元间共享。链接性为外部的名称可在文件间共享,链接性为内部的名称只能由一个文件中的函数共享。自动变量的名称没有链接性,因为它们不能共享。
- 静态持续变量
- ...
int global = 1000;//static duration,external linkage
static int one_file = 50;//static duration,internal linkage
int mian()
{
..
}
void funct1(int n)
{
static int conut = 0;//static duration,no linkage
int liama = 0;
..
}
void funct2(int q)
{
..
}
- 所有的静态持续变量都有下述初始化特征:未被初始化的静态变量的所有位都被置为0.这种变量被称为零初始化的(zer0-initialized)。
时间: 2024-10-24 16:34:17