除了声明array_u
为extern
,您还需要定义变量.extern
只是说要在其他地方找到定义.那个定义需要存在于某个地方.
请尝试以下方法.
改变globals.h
如下:
typedef union { uint8_t u8[12]; uint16_t u16[6]; } array_u_t; extern array_u_t *array_u;
定义array_u
中memory.c
,如下所示:
#include#include #include #include #include "globals.h" array_u_t *array_u; // <---------------- definition void allocate_array_u(void){ array_u = calloc(1, sizeof *array_u); }