首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么在多文件中共用一个常量数组

2012-03-22 
如何在多文件中共用一个常量数组?现在有一常量数组:constunsignedcharText5[5]{ A , B , C , D }此数组需

如何在多文件中共用一个常量数组?
现在有一常量数组:
const   unsigned   char   Text5[5]={ 'A ', 'B ', 'C ', 'D '}
此数组需要在多个func1.c,func2.c,func3.c....中引用,
请问大家需要如何定义这个数组?
我现在是把这个数组定义在一个constvalue.h中:
#ifndef   _CONSTVALUE_h

#define   _CONSTVALUE_h

const   unsigned   char   Text5[5]={ 'A ', 'B ', 'C ', 'D '};

#endif
然后通过在func1.c,func2.c,func3.c....中引用include "constvalue.h "   并使用,
但是编译提示:
multiple   definition   of   "Text5 "
编译环境:Dev-C++,winxp   pro
大家有其他办法吗?

[解决办法]
用extern.
[解决办法]
在其他C文件前面写上
extern Text5;
好像就可以了,试下。
[解决办法]
在.c文件中定义const unsigned char Text5[5]={ 'A ', 'B ', 'C ', 'D '};
在.h文件中声明extern const unsigned char Text5[5];
[解决办法]
在头文件中用
extern const unsigned char Text5[5];

然后在1个C文件中用
const unsigned char Text5[5]={ 'A ', 'B ', 'C ', 'D '};
这样编译这个C文件生成的obj文件中会包含一个Text5[]

其它include了这个头文件的C文件在编译时,extern会告诉编译器这是一个外部符号,生成的obj中就只有对Text5[]的引用

然后当link时,联接器发现这是一个外部符号,就会到其它obj文件中寻找Text5[],然后把它的地址写入引用它的地方,从而完成联接

热点排行