| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 373 人关注过本帖
标题:全局变量的问题 ?
只看楼主 加入收藏
Cking
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-9-23
收藏
 问题点数:0 回复次数:6 
全局变量的问题 ?
int a=1,b=2;///???????
max(inta ,int b)
{
int c;
c=a>b?a:b;
return(c);
}
main()
{
int a =8;
printf("%d",max(a,b));
}

如果把第1行改成:
extern int a=1,b=2;
有没有区别?我知道statci int a=1;,但是不知道这个区别。
谢谢啊!
搜索更多相关主题的帖子: 全局 变量 
2007-10-15 22:48
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 
int a=1,b=2; //在本文件内使用

extern int a=1,b=2; //可以被外部的文件引用


Repeat  Life=Study;Until (death);
2007-10-15 23:13
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
在C++中

如果外部定义了变量,主函数体内再定义一个相同的变量

那么在主函数中,新定义的变量完全取代全局变量

自我放逐。。。
2007-10-15 23:18
Cking
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-9-23
收藏
得分:0 
以下是引用缘吇弹在2007-10-15 23:13:02的发言:
int a=1,b=2; //在本文件内使用

这个不是和 static int a=1,b=2;一样吗?


2007-10-16 21:51
Cy_Chance
Rank: 1
等 级:新手上路
帖 子:46
专家分:1
注 册:2007-10-15
收藏
得分:0 

这里涉及到的是数据的存储类型:
在C语言中数据的存储类型有四种:auto register extern statci
auto 自动型 通常省略。。。即我们参说明的数据 int a 等 是省略auto 的数据说明;
register 寄存器型 如果把变量说明为寄存器类型,那么是把他存储到寄存器中,这样比操作内存快的多。
extern 外部参照型 用于多个编译单位之间传递数据,如果要实现跨文件数据访问则必须声明为 extern,还有extern 存 储在静态数据区中的,在程序执行过程中,一直占用着空间
static 静态型

在这里extern 和static 没有区别!

2007-10-17 19:23
Cy_Chance
Rank: 1
等 级:新手上路
帖 子:46
专家分:1
注 册:2007-10-15
收藏
得分:0 
汗水,回复后才发现。。。。几个月前的帖子。。。。伤心
2007-10-17 19:24
zzhang0821
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-17
收藏
得分:0 
一样的想法
2007-10-17 20:33
快速回复:全局变量的问题 ?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014749 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved