C陷阱与缺陷(四)--声明与定义

来源:互联网 发布:单片机交通灯实验报告 编辑:程序博客网 时间:2024/04/29 16:52

变量的定义&声明

<1>一种是需要建立存储空间的。例如:int a在声明的时候就已经建立了存储空间,也就是我们所说的定义

<2>另一种是不需要建立存储空间的。 例如:extern int a其中变量a是在别的文件中定义的。 告诉编译器,这个名字已经匹配到一块内存上了别的地方再也不能用它来作为变量名或对象名。声明可以出现多次。

 

全局变量问题

1)、C/C++中的变量分为全局变量、静态全局变量、局部变量和静态局部变量, 简单一点说,全局变量就是在函数外面定义的变量

(2)、全局变量只要在一个文件中定义后,在其他需要使用的源文件中只要使用extern关键字,即可在该文件中使用,用static修饰的局部变量只能在定义变量的函数中使用,那么用static修饰的全局变量也就只能在定义其的文件中使用了,这就是传说中的静态全局变量。

(3)、把多个全局变量封装到一个结构里吧可以减少全局变量的数量通过传递参数返回值、回调函数来代替全局变量。如果参数过多,可以定义结构体参数复杂点的作法还有使用全局队列、全局查找表等

(4)、全局变量最大的优点就是它最大的缺点。如果使用太多的全局变量会使代码编写和维护变得非常困难。。因为所有函数都有肯能去影响它而且是代码变得非常不稳定。因此定义C变量要有C++私有变量的意识。不然整个软件框架维护极其的困难!


函数的定义&声明

声明:一般在头文件里,对编译器说:这里我有一个函数叫function() 让编译器知道这个函数的存在。声明是告诉编译器有这么个变量,但并不实现。

定义:就是实现这个变量,真正在内存(堆或栈中)为此变量分配空间。定义一般在源文件里,具体就是函数的实现过程,写明函数体。

 

多个源文件好处

1> 在编写的所有C语言代码都保存在拓展名为.c的源文件中,编写完毕后就进行编译、链接,最后运行程序。

2> 在代码比较少,所有的代码都可以保存在一个.c源文件中。但是,在实际开发过程中,项目做大了,源代码肯定非常多,很容易就上万行代码了。这个时候如果把所有的代码都写到一个.c源文件中,那么这个文件将会非常庞大,也非常恶心,你可以想象一下,一个文件有十几万行文字,不要说调试程序了,连阅读代码都非常困难。

3> 为了模块化开发,一般会将不同的功能写到不同的.c源文件中,这样的话,每个开发人员都负责修改不同的源文件,达到分工合作的目的,能够大大提高开发效率,并且维护也方便

0 0
原创粉丝点击