找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2927|回复: 0
收起左侧

C语言头文件也能“定义”变量的小技巧

[复制链接]
ID:509721 发表于 2019-5-14 13:48 | 显示全部楼层 |阅读模式
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 文件如下
QQ图片20190520171333.jpg
示例TimerManage.h文件如下
QQ图片20190520171343.jpg
QQ图片20190520171333.jpg
QQ图片20190520171333.jpg

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表