VC/MFC
VB
Delphi
C++ Builder
C/C++
Java
.NET技术
MS-SQL Server
PowerBuilder
DB2
Oracle
Web 开发
Linux/Unix社区
硬件/嵌入开发
移动平台
您的位置:
程序门
->
c/c++
-> c++ 语言
为什么在多文件结构中定义的全局变量会是不同的值?
[
收藏此页
] [
打印本页
]选择字色:
默认
灰色
红色
黄色
绿色
橙色
紫色
蓝色
褐色
墨绿
深蓝
赭石
粉绿
淡绿
黄灰
翠绿
综红
砖红
淡蓝
暗红
玫瑰红
紫红
桔黄
军黄
烟灰
深灰
灰蓝
背景色:
默认
黑色
红色
黄色
绿色
橙色
紫色
蓝色
褐色
墨绿
深蓝
赭石
粉绿
淡绿
黄灰
翠绿
综红
砖红
淡蓝
暗红
玫瑰红
紫红
桔黄
军黄
烟灰
深灰
灰蓝
字体:[
大
][
中
][
小
]
为什么在多文件结构中定义的全局变量会是不同的值?
发表于:
2008-01-14 12:53:45
楼主
程序如下:
程序文件1:
#include <iostream>
int n = 8;
void f();
int main(){
std::cout < <n < <"\n";
f();
}
程序文件2:
#include <iostream>
int n;
void f(){
std::cout < <n < <"\n";
}
输出内容为:
8
0
很纳闷,既然全局变量都是在全局数据区定义的,那么在文件1和文件2中定义的变量n,应该是一个啊,为什么输出内容却不一样呢?
发表于:
2008-01-14 12:58:16
1
楼 得分:
0
先问一下,有没有链接错误?
发表于:
2008-01-14 12:59:22
2
楼 得分:
0
因为你的写法是错的. 居然通过编译了, 只能说明你的编译器不符合标准.
程序2里面应该用
extern int n;
发表于:
2008-01-14 12:59:41
3
楼 得分:
0
你定义的全局变量的作用域是从声明处开始到整个文件结束,如果是其它的文件中是看不到它的,所以如果文件2和文件1中的n是不一样的。如果你文件2想引用文件1中的n,可以在文件2中用extern把n声明为外部变量。
发表于:
2008-01-14 13:08:58
4
楼 得分:
0
文件中的变量的作用域 和 所谓的全局变量的作用域是不一样的。
全局变量在全局数据区定义是说的内存里面。
这里还有一个命名空间的问题。
你可以参考一下extern 的应用。
发表于:
2008-01-14 13:19:19
5
楼 得分:
0
呵呵,我明白了。
谢谢大家的帮助。
发表于:
2008-01-16 19:39:30
6
楼 得分:
0
二楼的问得好.
你这样链接时不出错么?
如果不是全局常量对象,在不同文件中重复定义(注意,不是extern声明),在链接时是会出错的
编译时会通过.因为编译一次只处理一个文件
to 3楼:
你说的那种情况要声明为static才行.而不声明的话,是不会像你说的那样的.
同一个程序的全局对象是在不同的文件中都可见.但是,因为编译器处理的关系.所以,要到链接时才能体现出来
因此,非const的全局对象不可在不同文件中重复定义
发表于:
2008-01-16 19:40:35
7
楼 得分:
0
看错了,应该是一楼的问得好
下一篇:
谁能给我提供一份用api函数写的c++程序
上一篇:
再次求救 关于临时地址初始化引用
相关文章
求c语言面试题
进程调试的方法都有什么?
什么是分时操作系统
关于aicode和算法
请问这个是什么意思? 没见过
一个比较急的问题,文件的替换问题.
一个关于画图的算法思路
cout的问题???
怎样对多个vector按同样的方式排序?
在catch子句中修改异常对象,有什么用?
使用vc2005建立一个项目执行下怎么现实项目过期这...
linux 下使用socket, link时候一堆und...
怎么从今年的多少天推算出这一天的日期?或怎么从...
学习编程该如何迈出第一步
又一个问题 呵呵
有个小程序编不出来拉!<w>
c语言中怎么样跳出两层循环????急
如何求char *p[]={"fff","af","faf"}的维数...
一道二叉树的建立与遍历题目求教
一个宏替换的问题
其他资讯
急~~~一道算法题
请教一个关于boost中bind 与 tuple&nb...
散分3
明天回家。。
在vc中编写图形学代码时遇见的问题
什么时候必须用指针的指针呢?
有没有人遇到过 vs.net2005 存盘的时候...
c++ 编译
问一个基本问题,关于申明~
一般大家定义bufsize是什么啊?
如何使用new造成runtime error?
pbyte的问题
linux c如何连接windows下的sqlserver呢??多...
函数问题
关于指针数组的问题,谢谢~
统计一下,大家都用什么工具写c程序?
关于表达式解析的问题
基础问题
熟悉c语言的朋友请帮我个小忙,非常感谢
小鸟的小东东,大家给点建议
快速检索
分类导航标签a
C++ Builder茶馆
硬件/嵌入开发硬件设计
硬件/嵌入开发硬件设计
Web 开发非技术区
VBVBA
Web 开发JavaScript
《开发高手》杂志购买/订阅/广告
社区支持支持专区
专题开发/技术/项目英保通解决方案
移动平台开发应用
软件培训/认证/考试软件学院
Windows专区Windows 9X
扩充话题求职与招聘
软件培训/认证/考试IBM
硬件使用装机与升级及其他
最新资讯
登陆验证的问题
100分求《visual c++网络程序设计实例详解》...
两个表中的时间字段比较取不为空的值保留
三个下拉列表??
求弟兄们帮忙:我写这个代码中,textarea为什么无...
linux下怎么调用一个可以执行文件(类似windows下...
求一简单sql语句
这里有没有做jsp虚拟空间的朋友哦,请教一些问题...
c#在winform中怎样打开 word文档
取得treectrl的节点信息
查询--连续两年考核为优秀的员工记录?
弱弱问一个问题,请支援
有关windows资源管理器的cpu和内存使用率的问题!...
求助~~谁来帮我挑挑错 我是在是找不到...
iis挑战性问题:w3wp的多进程
密码单向加密
如何编程更改mp3文件的标题(不是文件名)?
请问如何查询一个用户里边的有多少个表 表名...
求解一个高难度的正则表达式
如何实现这样的自动更新?
"十字架"病毒如何清除?
怎样在资源编辑模式下知道一个控件的类型
初学者弱问各位高手
如何找到游戏内存字符?
关于distinct的问题
datagrid的编辑问题
下面的代码可行吗?
大家帮助我好吗,很急...................
js导航条
谁愿意和我一起做学校管理系统
win32编程在64位操作系统到来进会不会过时
还是关于webform用户控件:自定义的属性在设计器...
重新提个问题
flash与asp.net交互问题(50分求助)
asp文章小问题请教!!!!!!!
java如何从配置文件(.txt)读入信息 50分求...
asp .net 如何进行安全性控制
配置与web同步
大家帮我看下这个js怎么一打开就提示关闭!
assume作用
热门点击
连接如何重新打开?
做了一个防止过度刷新的httphandler。 问题...
冒泡法
vb 里怎样引用暴风影音???
在哪里能下载到 计算方法教学网站 的原...
[急求]谁有vs2005 team edition ...
如何通过一个主机域名获得其ip地址?
那位做过语音控制器的开发,请介绍个能支做语音教...
请各位朋友推荐一下学java 所需http基础的书...
求一句sql语句,能不能不用join
没分了,不过这个问题已经困扰我一天了,跪求帮助...
20大家来估计这个站的价格!!!!asp.net开发
需要作网站的朋友请联系我们
sql中向视图中插入一条记录,问题请教!
c#中可执行文件或者dll如何共享静态数据?
jcreater无法安装
请问如何快速的同时读500个文件,每个50kbyte/s,...
csdn里还有高手吗?这样的问题在线等了好几天没人...
字符串转换遭遇os语言设置及字符集问题
关于.pc文件编译后会多产生些代码吗?请帮我看看这...
如果长城入选,那中国就能获得国际基金的拨款!爱...
跪求全局对象得定义和调用,小弟基础不好,急~~~~~...
那位有实现过调色板的进来!
求助:vs2005无法建立smart device的工程
用xp_sendmail发送的文件行列怎么对齐啊?
在serverlet中如何把另一个页面文件include在当前...
sql 关键字
请人做个j2me手机博客 有酬劳
vc++中怎么改变dialog标题栏的颜色
~~~100分求一问题--截取字符串方法, 马上兑...
散分
有关用vb编写插件的问题,不知道发在这里是否发对...
考系统分析的朋友们,推荐两本比较畅销的参考书吧...
xsl里的判断语句里的语法问题...谢谢了...
关于select.options[i].selected值得该表
由图片得异形窗体太费时怎么办??
求一个按照路径查找树的结点方法?
为什么用xsltprocessor解析xml空元素<content...
请问:我用c api连mysql 数据库,可以...
**pp,*p的问题。。。。