他的回复:
第三天打卡的任务. 我按照往常习惯,已经在hello_world_demo.c文件的上方引用了头文件: ``` #include "E53_IA1.h" ``` 但在下面的函数中使用```E53_IA1_Data```这个变量时编译仍旧提示我未定义,按照正常我用过的stm32cubeide的gcc和mdk arm compiler等编译器都可以识别到我包含的头文件中的全局变量声明,按理说我包含了头文件,紧接着再引用完全不需要声明的. ``` /* E53_IA1传感器数据类型定义 ------------------------------------------------------------*/ typedef struct { float Lux; //光照强度 float Humidity; //湿度 float Temperature; //温度 } E53_IA1_Data_TypeDef; extern E53_IA1_Data_TypeDef E53_IA1_Data; /* 寄存器宏定义 --------------------------------------------------------------------*/ ``` 后来我在hello_world_demo.c中添加了 ``` extern E53_IA1_Data_TypeDef E53_IA1_Data; ``` 来声明```E53_IA1_Data```结构体变量,仍旧不能识别,最后完全按照视频上的教程,去掉extern声明才正常编译通过,arm-none-eabi-gcc编译器的语法我理解不了,请问我的写法不符合c规定么?