不同文件怎么访问 一个 const变量 ?

peter9606 2004-06-16 03:17:11
我遇到了如下的问题:
在a.cpp中:
int a = 100 ;
const int b = 1000 ;
在b.cpp中:

extern int a ;
extern const int b ;
void main(){
printf("\n%d\n",a);
printf("\n%d\n",b);
}
联接的时候出现了下面的错误:
说b没有找到
...全文
136 点赞 收藏 15
写回复
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
peter9606 2004-06-18
在2.cpp中:

extern int a ;
extern const int b ;----〉换成 extern int b ; 一样不行
void main(){
printf("\n%d\n",a);
printf("\n%d\n",b);
}
回复
peter9606 2004-06-18
怎么可以的?
在1.cpp中:

int a = 100 ;
const int b = 1000 ;

在2.cpp中:

extern int a ;
extern const int b ;
void main(){
printf("\n%d\n",a);
printf("\n%d\n",b);
}
联接的时候出现了下面的错误:
说b没有找到

你能通过联接???在什么环境下呢?我在 vc6下

回复
微星1234 2004-06-18
我试过了, 可以啊,
只要两个文件同属于一个工程就行的
回复
peter9606 2004-06-18
这算不算是一个 缺陷 ?
回复
peter9606 2004-06-18
也就是说不可以引用另一个文件中定义的const变量了?
回复
Loeb 2004-06-17
理论上是没有错误,我运行了。
不知道楼主怎么个情况
回复
qwertasdfg123 2004-06-17
To why_no(程序猿)
我试过,不行。
包含含有变量的头文件。
回复
xiao78xy 2004-06-17
好像是不可以
换个方法,将const 放到.h文件中包含,这个是可以的,凑合着用把.
回复
why_no 2004-06-17
gcc a.cpp b.cpp
楼主要这样的
回复
peter9606 2004-06-17
To Loeb(觉醒吧,道德!)
请问你运行这个程序了?我怎么没有联接通过?说找不到b的定义在b.cpp中。

我的编译环境是vc6.0
回复
alever513 2004-06-16
哎,这个错误很多人都会忽略:
static const int b;
回复
qwertasdfg123 2004-06-16
一个const必须初始化。
extern const int b // b没有初始化。
回复
peter9606 2004-06-16
这个 还不详细?
这两个文件就是这样的
编译可以通过
但是联接不行。。
请问是怎么回事
回复
Loeb 2004-06-16
描述的太不详细了。
回复
peter9606 2004-06-16
难道没有人会么?
回复
发动态
发帖子
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
社区公告
暂无公告