变量的定义:为变量分配存储空间,还可以指定初始值。定义是“在这里建立变量”或“在这里建立函数”。对于变量,编译器确定变量的大小,然后在内存中开辟空间来保存其数据,对于函数,编译器会生成代码,这些代码最终也要占用一定的内存。变量仅有一个定义。定义也是声明。
变量的声明:表明变量的类型和名字。它告诉编译器“这个函数或变量在某处可找到,它的模样象什么”。
1.通过使用extern声明变量而不定义它。
2.如果声明有初始化式,即使加了extern都被当做定义。只有当extern声明位于函数外部时,才可以被初始化。例如:extern double pi=3.14.
3.不要把定义放在.h文件,这样会导致重复定义的错误。但是const变量的定义可以放在头文件中;类的定义也可以放到头文件中;inline函数也可以放在头文件中。原因如下:
类定义是因为编译器需要它们的定义来产生代码。为了产生能定义和使用类的对象的代码,编译器需要知道组成该类的数据成员和可以执行的操作。类定义提供了这些信息,所以需要在头文件中定义。
Const变量默认为定义它的文件的局部变量,所以即使在多个源文件中出现这个变量的定义也是合法的。
4.尽量使用static把定义限制在该源文件作用域。
(1)对于局部变量用static声明,则是为该变量分配的空间在整个程序的执行期内都始终存在。
(2)外部变量用static来声明,则该变量的作用只限于本文件模块。
5.基本类型变量的声明和定义(初始化)是同时产生的;而对于对象来说,声明和定义是分开的。
例如:类A。如果A a;就是一个声明,告诉编译器a是A类的一个对象变量,但是不进行初始化;如果以后a=new A();这就是初始化,分配了空间。
时间: 2024-10-12 17:48:57