C语言中,程序可分成三个部分
1、头文件:包含结构声明、和 使用这些结构的函数原型(函数声明);
2、源代码文件:包含与结构有关的函数代码;
3、主程序源代码文件:包含调用与结构相关的函数的代码;
注意:头文件中不能放函数定义、变量声明,否则当在其他两个文件中包含该头文件会出现同一个程序包含一个函数的两个定义。
在一个文件中只能将同一个头文件包含一次。但可能在使用其他头文件时,也包含了该头文件,可以通过以下方法解决该问题:在头文件中定义常量xxxxxx_h_,
#ifndef xxxxxx_h_
。。。
#endif
头文件引用使用<string>,“string”的区别:
使用<string>,编译器将在存储标准头文件的主机系统的文件系统中查找;
使用“string”,编译器首先在当前工作目录、源代码目录中查找,没找到再在标准头文件位置查找;
三种存储特性:
自动存储特性:在函数定义中声明的变量的存储特性为自动的,函数执行完、或者代码块执行完时,它们使用的内存将被自动释放;
静态存储特性:在函数定义外定义的变量和使用关键字static定义的变量的存储特性都为静态的;它们在程序整个运行过程中都存在;
动态存储特性:用new运算符分配的内存将一直存在,知道使用delete运算符或者程序终止;
作用域(scope):名称在文件内的可见范围;
连接线(linkage):名称如何在不同单元间共享;
静态存储持续特性变量的3中链接特性:
外部链接特性:可以在其他文件中访问。在代码块外面声明。
内部链接特性:只能在当前文件中访问。在代码块外面声明,并使用static关键字。
无链接特性:只能在当前代码块中、或函数中使用。在代码块内声明,并使用static关键字。
如果没有显示的初始化静态变量,则其值为0.
名称空间:
名称空间可以是全局的、也可位于另一个名称空间中,但不能位于代码块中。默认情况下,名称空间中声明的名称链接性为外部的,除非引用了常量。