在global.h中使用EXTERN声明全局变量,代码如下:
#define EXTERN extern
#ifdef TABLE
#undef EXTERN
#define EXTERN
#endif
EXTERN i32_t tty_pos;
EXTERN u8_t gdt_info[6];
EXTERN gdesc_t gdt[GDT_SIZE];
在table.c中定义TABLE宏,并包含global.h,可使得所有的全局变量在table.c中定义,代码如下:
#define TABLE
/* 所有全局变量在此文件中定义 */
#include "global.h"
而所有其他包含global.h的C文件只包含全局变量的声明。