一种C函数预处理用法

本文来自: 高校自动化网(Www.zdh1909.com) 详细出处参考(转载请保留本链接):http://www.zdh1909.com/html/MCS51/9288.html 

嵌入式开发中,文件比较多,有很多全局变量需要在不同文件中引用。一般在头文件和C文件中采用预处理命令来避免变量的重复定义。

   先看一例:

   在Main.c文件的开始

 #define   MAIN_GLOBALS

 #include “main.h”

 

在main.h文件开始

#ifdef   MAIN_GLOBALS     //如果存在宏定义

#define  MAIN_EXT          //定义MAIN_EXT为空

#else                        //否则

#define  MAIN_EXT  extern   //定义MAIN_EXT为extern

#endif

 

MAIN_EXT  uchar  Car_Out,OldOut;

MAIN_EXT  uchar  Car_Out1,OldOut1;

MAIN_EXT  uchar  Car_Out2,OldOut2;

MAIN_EXT  uchar  Car_In,OldIn;

MAIN_EXT  uchar  Car_In1,OldIn1;

 

通过上面的2个文件可以看出,在main.c中,因为定义了宏MAIN_GLOBALS,包含头文件main.h 后,在main.c中定义了car_out,oldout等变量。

如果在其他的c文件中包含main.h,因为c文件中没有定义宏MAIN_GLOBALS,所以MAIN_EXT就是extern,也就是在其它c文件中声明car_out,oldout等变量。这样就避免了重复定义。


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值