社区
C++ 语言
帖子详情
extern的问题:我在A.CPP文件中定义int i = 1;在B.CPP文件中定义int i = -1;在C.CPP中定义extern int i;请问在C.CPP中i的值为多少?
zkk520777
2005-11-21 08:36:50
我
在A.CPP文件中定义 int i = 1;
在B.CPP文件中定义 int i = -1;
在C.CPP中定义 extern int i;
请问在C.CPP中i的值为多少,为什么?
能不能具体讲讲其中的原理?
谢谢了
...全文
180
12
打赏
收藏
extern的问题:我在A.CPP文件中定义int i = 1;在B.CPP文件中定义int i = -1;在C.CPP中定义extern int i;请问在C.CPP中i的值为多少?
我 在A.CPP文件中定义 int i = 1; 在B.CPP文件中定义 int i = -1; 在C.CPP中定义 extern int i; 请问在C.CPP中i的值为多少,为什么? 能不能具体讲讲其中的原理? 谢谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dragonzxh
2005-11-22
打赏
举报
回复
-----------------------------------------------------------
我在vc 6.0 用MFC构造一个框架,开始编译通不过
但是采用下列方法就可以通过了~~~~~~~~~~~~~~~~~~~~~~~~~~~~
先把一个文件的int i(或a.cpp或b.cpp的) 屏蔽掉,
编译一变 然后再取消 屏蔽,再编译一遍,就可以通过了~
-----------------------------------------------------------
我是来汗这个的....
oosky2004
2005-11-22
打赏
举报
回复
终于对自己的答案确定了。
zenny_chen
2005-11-21
打赏
举报
回复
对一个变量的声明可做多次,而定义只能有一次。如果在某个函数中用到了未经定义的变量就会在连接时出错;同样对某一变量做重复定义也会在连接时报错。
在C.h中声明 extern int i;
在A.CPP文件中定义 int i = 1;
并#include <C.h>
Basin_Fish
2005-11-21
打赏
举报
回复
重复定义吧~怎么能通过呢?
ma100
2005-11-21
打赏
举报
回复
楼上的楼上是没选 build all
JohnTitor
2005-11-21
打赏
举报
回复
汗一下楼上
zkk520777
2005-11-21
打赏
举报
回复
我在vc 6.0 用MFC构造一个框架,开始编译通不过
但是采用下列方法就可以通过了~~~~~~~~~~~~~~~~~~~~~~~~~~~~
先把一个文件的int i(或a.cpp或b.cpp的) 屏蔽掉,
编译一变 然后再取消 屏蔽,再编译一遍,就可以通过了~
JohnTitor
2005-11-21
打赏
举报
回复
连接不过
A.obj 和B.obj重复定义了a
orange017
2005-11-21
打赏
举报
回复
在一个完整的工程中,应该是只有一个文件中有相应的文件定义,比如说在1.cpp中有int a=1;
在其他的文件中只能是extern int a;或者是其他文件中:static ina a=1;(静态的变量,只能供本文件使用),要不是的话,会出现重复定义变量的错误!!!
feto
2005-11-21
打赏
举报
回复
连接不过,符号重定义错误
ma100
2005-11-21
打赏
举报
回复
无法编译
oosky2004
2005-11-21
打赏
举报
回复
我等待高人来回答。
不确定自己的大案。
《C深度解析》第7、8章 结构体/共用体/枚举,杂项(自动类型转换、大小端序等)
第7章: 1. 结构体 结构体
定义
、访问、传参,结构体对齐(offsetof宏、contaner_of宏),结构体内嵌函数指针,程序分层,模块化等。 2. 共用体 共用体与结构体的异同、共用体的作用、共用体举例 3. 枚举 第8章: ...
C++全局变量是
定义
在.
cpp
中
,还是.h
中
?
全局变量应该
定义
在.
cpp
中
,如果.h
文件
需要调用该变量,则需要在.h
文件
中
添加
extern
关键字。若其他
文件
要调用该变量,则需要在
文件
中
的变量前添加
extern
,可以不包含对应的.h
文件
,更不能包含.
cpp
。 eg1: /*impro.h*/
extern
int
a; /*impro.
cpp
*/
int
a; /*main.
cpp
*/ include "impro.h...
C++ 在一个main.
cpp
文件
中
,如何调用其他模块.
cpp
文件
中
定义
的函数?
问题
:在项目编程过程
中
,想实现分模块设计,在main.c
中
调用其他模块函数怎么做? 有两种方法, 请看下面: 分功能模块设计,包含.h
文件
: 1、首先分模块设计,一个功能模块对应一个 func.
cpp
文件
和 func.h
文件
; 2、变量、函数
定义
放在func.
cpp
,声明放在func.h
中
; // File:func.c
int
i = 0, j = 2;// 本
文件
全局变量 // 功能函数
int
func(void) { return 0; } // File:func.h #pragma o
C++
中
全局变量及函数如何在其他
文件
中
使用
C++
中
的全局变量以及函数如何在其他
文件
中
使用 这就要涉及到
extern
关键词的使用了。 全局变量如何在其他
文件
中
使用 例如: 在 A.
cpp
文件
中
定义
了变量a,想要在B.
cpp
中
使用a,如下: //A.
cpp
int
a=50; //B.
cpp
extern
int
a;//这里只需要使用
extern
声明变量a,不需要添加任何头
文件
int
main() {
int
b=a+1;//这里就可以使用变量a。b的结果为 51 } 全局函数在如何在其他
文件
中
使用 和上面的基本相同 //
踩坑-引用头
文件
导致重复
定义
问题
-
extern
今天在一个.h头
文件
中
定义
了一个全局变量,然后在两个.
cpp
文件
中
引用了该头
文件
,导致变量重复
定义
问题
。 我们知道,变量有声明和
定义
,声明可以有多次,但是
定义
只能有一次。打个比方: //a.h
文件
int
a; 然后我们在b.
cpp
和c.
cpp
中
引用a.h
文件
,这样就会出现重复
定义
。
int
a;会在每一个
文件
中
重新
定义
一次 而我们如果再前边加上关键字
extern
,那么就代表ex...
C++ 语言
64,651
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章