宏定义 常用于 字符串 替代。如果定义了宏 OS_GLOBALS 则 {定义 宏 OS_EXT}否则 {#define OS_EXT extern} -- 也就是 以后出现的 字符串 OS_EXT 用 字符串 extern 替代 后再编译。
#define OS_EXT extern就是说在预编译时凡是遇到 OS_EXT 都自动替换成 extern宏定义不分配内存。
在os_core.c文件里分配内存,其他c文件只是声明。