C语言头文件也能“定义”变量的小技巧 总所周知,在多文件编程的工程项目中,是禁止在头文件中定义变量。这是因为在头文件中定义变量,将会由于头文件被其他.c文件包含而导致变量重复定义。现在介绍一种技巧能够在头文件中也能定义变量。 增加在头文件中对关键字extern作如下声明:以我写的TimerManage.h文件示例如下 /* ****************************************************************************************** EXTERNS ******************************************************************************************* */ #ifdef TIMER_MANAGE_GLOBALS #define TIMER_MANAGE_EXT #else #define TIMER_MANAGE_EXT extern #endif 这样在定义变量时,前面只需加TIMER_MANAGE_EXT,就可以了,示例如下 typedef struct { u16 Delay; u32 Count; }AppTimer_Typedef; TIMER_MANAGE_EXT AppTimer_TypedefAppTimer_Struct; 在相应的TimerManage.c文件中增加对TIMER_MANAGE_GLOBALS的定义即可, 如下: #define TIMER_MANAGE_GLOBALS 这样在TimerManage.c中只需包含TimerManage.h文件,不需要在TimerManage.c文件中单独在定义变量了。这样代码比较简洁,易于维护。 示例TimerManage.c 文件如下 示例TimerManage.h文件如下
|