| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 397 人关注过本帖
标题:关于 函数的讨论
只看楼主 加入收藏
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
结帖率:73.96%
收藏
已结贴  问题点数:10 回复次数:4 
关于 函数的讨论
#include <stdio.h>
void num()
{
   extern int x,y;
   int a=15,b=10;
   x=a-b;y=a+b;
}
int x,y;
main()
{
   int a=7,b=5;
   x=a+b;y=a-b;
   num();
   printf("%d,%d\n",x,y);
}
 在这里EXTERN有什么作用  能解释一下计算 过程吗
搜索更多相关主题的帖子: 函数 
2010-02-01 10:07
playmyself
Rank: 5Rank: 5
来 自:第3系4级宇宙空间
等 级:职业侠客
帖 子:76
专家分:399
注 册:2009-7-8
收藏
得分:2 
声明引用的是外部变量x,y;(第8行的变量)

如果都去掉extern int x,y;函数内没有变量会出错,可以把第8行放到最前面声明。

如果去掉extern,num函数里的x,y他就是num函数里的内部变量,函数中优先使用内部变量。使用完后失效,不改变外面x,y的值。
main函数中没有定义内部变量,就使用外部变量x,y。

所以去掉后结果为12,2

无聊创造奇迹。
2010-02-01 10:37
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
你的结果不对啊  应该是5,25

Discuz!  
好好学习  天天向上
2010-02-01 10:53
playmyself
Rank: 5Rank: 5
来 自:第3系4级宇宙空间
等 级:职业侠客
帖 子:76
专家分:399
注 册:2009-7-8
收藏
得分:8 
我说的是去掉extern后的结果。

如果不作修改结果是5,25。

无聊创造奇迹。
2010-02-01 10:56
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
看错了饿   你的是对的

Discuz!  
好好学习  天天向上
2010-02-01 10:57
快速回复:关于 函数的讨论
数据加载中...
 
   



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

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