关于全局数组调用的问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 15:00:26
我在一个文件中定义了一个全局数组,在另一文件中想将数组的一个值赋给一结构体成员
定义数组为:unsigned char Array[9];
在另一文件中调用extern Array[9];
定义的结构体为 typedef struct
{
unsigned char t;
}s_data;

(中间过程省略)

为结构体成员赋值操作 s_data data;
data.t = Array[0];
编译报错
lcd_Comopreate.obj : error LNK2001: unresolved external symbol "int * Array" (?Array@@3PAHA)
Debug/lcd_demo.exe : fatal error LNK1120: 1 unresolved externals

如果换成int型就不会出错,是不是unsigned char型不能做全局变量啊

extern Array[9];
加上类型呀,在调用不同文件中的变量时,与声明时只差一个extern其它的都一样呀,你得把类型,变量名什么的都要写全呀
如果没有写的话系统会自认为是整形,所以说不写时int型就对了,因为在内存中其存储的位数不同呀

extern Array[9]; 没说明类型造成的
改为extern unsigned charArray[9];