我希望定义一个大小为1字节的数组,该数组可用于多个.c文件,因此我需要一个全局数组。我知道全局变量的方法:
代码语言:javascript复制 //"globals.h"
extern uint8_t GlobalVar; //Declaration
//"globals.c"
uint8_t GlobalVar = 0; //Definition因此,对于我的数组,我首先使用ty以至f来定义一个字节:
代码语言:javascript复制 typedef uint8_t byte; //in "globals.h" right at the beginning然后继续对数组进行声明和定义:
代码语言:javascript复制 //"globals.h"
extern byte GlobalAr[10];
//"globals.c"
byte GlobalAr[0] = 0b00001111;但是我得到了这些错误:
错误1 'GlobalAr‘的冲突类型
第2条消息“GlobalAr”的先前声明在这里
错误3无效的初始化程序
如果我在一个函数中尝试相同的事情,它就会非常好地工作,即:
代码语言:javascript复制 typedef uint8_t byte;
void function()
{
byte GlobalAr[10];
GlobalAr[0] = 0b00001111;
GlobalAr[1] = 0b11110000;
}Q1:你们能帮我弄清楚如何定义全局数组并正确初始化它吗?
Q2:为什么第二条路起作用,而第一条却不行?
任何帮助都会感激的!提前感谢!