c语言函数定义和函数声明

c语言函数定义和函数声明

ID:34562399

大小:85.20 KB

页数:9页

时间:2019-03-08

c语言函数定义和函数声明_第1页
c语言函数定义和函数声明_第2页
c语言函数定义和函数声明_第3页
c语言函数定义和函数声明_第4页
c语言函数定义和函数声明_第5页
资源描述:

《c语言函数定义和函数声明》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言函数定义和函数声明变量在将变量前,先解释一下声明和定义这两个概念。声明一个变量意味着向编译器描述变量的类型,但并不为变量分配存储空间。定义一个变量意味着在声明变量的同时还要为变量分配存储空间。在定义一个变量的同时还可以对变量进行初始化。局部变量通常只定义不声明,而全局变量多在源文件中定义,在头文件中声明。局部变量在一个函数的内部定义的变量是内部变量,它只在本函数范围内有效。自动变量auto函数中的局部变量,其缺省格式是自动变量类型。例如,在函数体中intb,c=3;和autointb,c=3;是等价的。自动

2、变量是动态分配存储空间的,函数结束后就释放。自动变量如不赋初值,则它的值是一个不确定的值。静态局部变量static静态局部变量是指在函数体内声明和定义的局部变量,它仅供本函数使用,即其他函数不能调用它。静态局部变量的值在函数调用结束后不消失而保留原值,即其占用的存储单元不释放,在下一次函数调用时,该变量已有值,就是上一次函数调用结束时的值。静态局部变量在静态存储区分配存储单元,在程序的整个运行期间都不释放。静态局部变量是在编译时赋初值的,即只赋初值一次。在SDT编译器中,建议对静态局部变量赋初值,否则该静态局部变

3、量的初值为不确定值。在其他编译器中,未初始化的静态局部变量的初值可能为零,这由具体的编译器所决定,使用前最好测试一下。寄存器变量register带register修饰符的变量暗示(仅仅是暗示而不是命令)编译程序本变量将被频繁使用,如果可能的话,应将其保留在CPU的寄存器中,以加快其存取速度。对于现有的大多数编译程序,最好不要使用register修饰符。因为它是对早期低效的C编译程序的一个很有价值的补充。随着编译程序技术的进步,在决定哪些变量应当被存到寄存器中时,现在的C编译程序能比程序员做出更好的决定。全局变量在

4、函数之外定义的变量称为外部变量,外部变量是全局变量,它可以为本文件中其他函数所共用。全局变量都是静态存储方式,都是在编译时分配内存,但是作用范围有所不同。静态外部变量static静态外部变量只能在本文件中使用。所以静态外部变量应该在当前源文件中声明和定义。外部变量extern定义函数中的全局变量时,其缺省格式是外部变量类型。外部变量应该在一个头文件中声明,在当前源文件中定义。外部变量允许其他文件引用。下例声明了一个变量和一个结构,定义了两个变量,其中一个定义带初始化:externintdecl1;//thisis

5、adeclarationstructdecl2{intmember;};//thisjustdeclaresthetype–novariablementionedintdef1=8;//thisisadefinitionintdef2;//thisisadefinition函数内部函数的声明和定义多在当前源文件中完成;而外部函数通常在源文件中定义,在头文件中声明。内部函数只在当前源文件中使用的函数应该说明为内部函数。内部函数应该在当前源文件中声明和定义。若内部函数在头文件中声明,其他源文件通过包含这个头文件也可使

6、用这个函数,但这样就失去了其做为内部函数的意义。优点:使用内部函数,可以使函数只局限于所在文件。这避免了与其他源文件中可能出现的同名函数发生冲突。例:File:function1.c#include“function1.h”staticintstat_func(void);voidMasterFunction(void){„rc=stat_func();„}staticintstat_func(void){„returnrc;}外部函数对于可在当前源文件以外使用的函数,应该在一个头文件中声明。其他源文件可通过包含

7、这个头文件或进行声明来使用这些函数(推荐用前者)。一个良好的编程习惯是在头文件中声明函数的原型。这可方便编译程序查错。定义函数时,缺省的函数类型是外部函数。如:voidfun2(void);和externvoidfun2(void);其函数类型是等价的,但前一个是定义函数,后一个是声明函数。小结编写程序,尤其是大型程序时,建议采用上文所述的方法对不同的变量、函数进行必要的声明、定义。做好这些细节上的事务,可以为您的编程、调试、移植等带来很大的方便。变量在将变量前,先解释一下声明和定义这两个概念。声明一个变量意味着

8、向编译器描述变量的类型,但并不为变量分配存储空间。定义一个变量意味着在声明变量的同时还要为变量分配存储空间。在定义一个变量的同时还可以对变量进行初始化。局部变量通常只定义不声明,而全局变量多在源文件中定义,在头文件中声明。局部变量在一个函数的内部定义的变量是内部变量,它只在本函数范围内有效。自动变量auto函数中的局部变量,其缺省格式是自动变量类型。例如,在函数体中int

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。