c语言设计函数,【新手起步】C语言设计 【4.函数】

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

9.全局变量

与局部变量不同,全局变量贯穿整个程序,并且可被任何一个模块使用。它们在整个程序执行期间保持有效。全局变量定义在所有函数之外,可由函数内的任何表达式访问。在下面的程序中可以看到,变量count定义在所有函数之,函数main( )之前。但其实它可以放置在任何第一次被使用之前的地方,只要不在函数内就可以。实践表明,定义全局

变量的最佳位置是在程序的顶部。

int count; /*count 是全局变量* /

main( )

{

count = 100;

func1( );

}

func1( )

{

int temp;

temp = count;

func2( );

printf("count is %d",count); /* 打印100 */

}

func2( )

{

int count;

for(count = 1; count < 10; count++)

putchar('.'); /* 打印出"。" */

}

仔细研究此程序后,可见变量count既不是main( )也不是func1( )定义的,但两者都可以使用它。函数func2( )也定义了一个局部变量c o u n t。当f u n c 2访问c o u n t时,它仅访问自己定义的局部变量count,而不是那个全局变量count。切记,全局变量和某一函数的局部变量同名时,该函数对该名的所有访问仅针对局部变量,对全局变量无影响,这是很方便的。然而,假如忘记了这点,即使程序看起来是正确的,也可能导致运行时的奇异行为。

全局变量由C编译程序在动态区之外的固定存储区域中存储。当程序中多个函数都使用同一数据时,全局变量将是很有效的。然而,由于三种原因,应避免使用不必要的全局变量:

①不论是否需要,它们在整个程序执行期间均占有存储空间。

②由于全局变量必须依靠外部定义,所以在使用局部变量就可以达到其功能时使用了全局变量,将降低函数的通用性,这是因为它要依靠其本身之外的东西。

③大量使用全局变量时,不可知的和不需要的副作用将可能导致程序错误。如在编制大型程序时有一个重要的问题:变量值都有可能在程 序其它地点偶然改变。

结构化语言的原则之一是代码和数据的分离。C语言是通过局部变量和函数的使用来实现这一分离的。下面用两种方法编制计算两个整数乘积的简单函数mul( )。

通用的专用的

mul(x,y) int x,y;

int x,y; mul( )

{{

return( x * y ); return( x * y );

}}

两个函数都是返回变量x和y的积,可通用的或称为参数化版本可用于任意两整数之积,而专用的版本仅能计算全局变量x和y的乘积。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值