C_and_CPP 版 (精华区)

发信人: iamxiaohan (潇寒), 信区: C_and_CPP
标  题: Re: c程序,连接出错,lnk2005,怎么办?
发信站: 哈工大紫丁香 (2003年11月11日16:33:34 星期二), 站内信件

重复定义的问题,
把变量在一个cpp文件中声明,
如 int a ;
在头文件中,用 extern int a ; 声明,
就行了。
C/C++ 认为 int a ;是一个定义而非声明,
在程序中,只能定义一次,而声明可以声明无数次,
extern int a ;就是一个声明而非定义,
头文件被包含几次,就相当于定义了几次,
因此,头文件中最好不要有定义,而只保留声明。

【 在 xceman (辉->乖狼*百事可乐) 的大作中提到: 】
: 在一个头文件a.h中定义了一个全局变量,并在相应的cpp文件a.cpp中引用,
: 在另一个cpp文件b.cpp中定义main函数,包含这个头文件,
: 并调用它声明的一个函数(此函数在a.cpp中定义),
: 连接出错,错误信息为:
: a.obj : error LNK2005: "char (* WordList)[15]" (?WordList@@3PAY0P@DA) alread
: y defined in b.obj
: 应该怎么办?


--
Welcome to Hit Pure C/C++ Fourm (HPC)
http://software.hit.edu.cn/borlandclub/bbs/get.asp?get=12  <---请点这个 ^_^
http://purec.binghua.com
http://purecpp.binghua.com

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.3]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.230毫秒