返回信息流作用域显然是整个工程的了(跨文件)
不过请问是不是也能像static那样保留数值?
也就是说:
我在A.CPP中定义
int a=0;
然后在B.CPP中:
extern int a
并改变i的数值:a=1;
那么当这个文件执行完毕后a是否能保留1的数值呢?
这是一条镜像帖。来源:北邮人论坛 / cpp / #14280同步于 2008/10/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
extern变量能否在跨文件时保留值?
seed
2008/10/18镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
1. C语言是编译型的,不是解释型的,所以不存在执行完一个文件去执行另一个文件。
在编译和链接的阶段,把所有的代码变成了一个可执行文件。
2. extern是声明,说明在这个B.CPP文件中用到的变量a,是在其他文件中定义的。本身没有新的变量产生,直接使用的是A.CPP里面的那个a。
也就是说a的值会变成1是吧?如果下面要执行的代码位于C.CPP文件中,a就会带着1的值进入是么?
【 在 ericyosho 的大作中提到: 】
: 1. C语言是编译型的,不是解释型的,所以不存在执行完一个文件去执行另一个文件。
: 在编译和链接的阶段,把所有的代码变成了一个可执行文件。
: 2. extern是声明,说明在这个B.CPP文件中用到的变量a,是在其他文件中定义的。本身没有新的变量产生,直接使用的是A.CPP里面的那个a。
明白了,谢谢哈!
【 在 ericyosho 的大作中提到: 】
: 1. C语言是编译型的,不是解释型的,所以不存在执行完一个文件去执行另一个文件。
: 在编译和链接的阶段,把所有的代码变成了一个可执行文件。
: 2. extern是声明,说明在这个B.CPP文件中用到的变量a,是在其他文件中定义的。本身没有新的变量产生,直接使用的是A.CPP里面的那个a。
呃~
我有那么老嚒~~
=。=
不过可以考虑你的意见,以后当培训师去,祸害一帮又一帮年轻人,也是不错的想法。
嗯~Wahahaha~
【 在 corndolly 的大作中提到: 】
: ericyosho基础真好,是老师吗?