找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3638|回复: 0
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
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文件如下

QQ图片20190520171333.jpg (27.27 KB, 下载次数: 162)

QQ图片20190520171333.jpg

QQ图片20190520171333.jpg (18.47 KB, 下载次数: 141)

QQ图片20190520171333.jpg

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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