- 1、变量定义:用于为变量分配内存空间,同时可以选择指定初始值。变量有且仅有一个定义。
- 2、变量声明:用于表明变量的类型和名字。
- 3、定义也是声明:当定义变量时我们声明了它的类型和名字。
- extern关键字:extern关键字声明变量名而不定义。
- 定义也是声明,extern声明不是定义,即不分配存储空间。
- 如果声明时进行了初始化,就会被当做定义,即便是前面加了extern。只有当extern声明位于函数外部时才可以被初始化。
extern double PI=3.14;
3、函数的声明和定义区别比较简单,带有{}的就是定义,否则就是声明。
extern double max(double d1,double d2); //声明,此时extern可以去掉
double max(double d1,double d2) { } //定义。
- 设计风格:
- 不要把变量定义放在.h文件中,避免重复定义。
- 尽量使用static把变量定义限制于该文件的作用域。
- 可以在头文件中声明一个变量,在用的时候包含这个头文件就声明了变量。
- 总结:
- 变量在使用前要被定义或者声明。
- 变量只能定义一次,却可以多次声明。
- 定义分配存储空间,声明不会分配存储空间。
参考资料:
https://www.cnblogs.com/lca1826/p/6505701.html