原创 一种C函数预处理用法

2010-6-11 17:42 2111 3 3 分类: MCU/ 嵌入式

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


   先看一例:


   Main.c文件的开始


 #define   MAIN_GLOBALS


 #include “main.h”


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


main.h文件开始


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


#define  MAIN_EXT          //定义MAIN_EXT为空


#else                        //否则


#define  MAIN_EXT  extern   //定义MAIN_EXTextern


#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等变量。这样就避免了重复定义。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条