| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 650 人关注过本帖
标题:求 extern 的应用
只看楼主 加入收藏
模糊
Rank: 2
等 级:论坛游民
帖 子:56
专家分:53
注 册:2013-2-26
结帖率:75%
收藏
已结贴  问题点数:4 回复次数:19 
求 extern 的应用
那个大哥能给我解释一下extern的应用 最好给个实例
搜索更多相关主题的帖子: 大哥 最好 
2013-02-26 18:12
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
收藏
得分:1 
#include<stdio.h>
#include<stdlib.h>
extern int n;//在外部变量定义之前想使用n, 用extern声明一下来扩展其作用域,也可扩展到其它文件
int main(void)//记得声明也要在函数外面
{
    int i=1;
    int j=2;
    int mai();
    mai();
    ++n;
    j+=n;
    system("pause");
    return 0;
}
int n=1; //定义外部变量n
void mai(void)
{
    printf("%d",n);
}
2013-02-26 20:37
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:1 
等你的代码长到需要分割成多个文件来管理时再告诉你吧。现在忽略它不影响你的学习。

重剑无锋,大巧不工
2013-02-26 20:37
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
楼上的例子并没有展示出extern的意义。

重剑无锋,大巧不工
2013-02-26 20:40
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:1 
...

仰望星空...........不忘初心!
2013-02-26 20:41
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
坐了一天车...休息一天...明天开工....

仰望星空...........不忘初心!
2013-02-26 20:42
小xiong
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:388
专家分:1722
注 册:2013-2-8
收藏
得分:0 
呵呵,学习中,
2013-02-26 20:43
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
这要和static做全局变量做下比较....比如两个文件:file1(全局变量是static A)和file2(全局变量是extern A),尽管全局变量都是A,但是file1中的全局变量A是无法在file2中生效的

仰望星空...........不忘初心!
2013-02-26 20:46
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
我想beyongdyf版想说的就是extern做全局变量的作用域可以扩散到其他的文件是吧?

仰望星空...........不忘初心!
2013-02-26 20:56
模糊
Rank: 2
等 级:论坛游民
帖 子:56
专家分:53
注 册:2013-2-26
收藏
得分:0 
#include <stdio.h>
int main(void)
{
    void f(void);
    int i = 1;
    printf("%d",i);
    f();
    return 0;
}
void f(void)
{
    extern int i;
    printf("\n%d",i);
}
为啥extern不能使i在函数f中使用
2013-02-26 21:06
快速回复:求 extern 的应用
数据加载中...
 
   



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

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