从Minix中学到的C语言小技巧

在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文件只包含全局变量的声明。

你可能感兴趣的:(c)