C中宏的文件组织存放小小结
最近在看别人写的代码,关于宏存放在哪个头文件这一点上真是异常的郁闷。现总结如下:
在将程序模块化的同时,重要的是确定自己所要使用的函数和宏的存放文件。
函数或者宏可以分为专用和通用。可以将专用的根据其功能存放到几个文件(.c 和 .h)中当成一个模块。通用的可以有条理的放在一起。
宏中的常量有时候单独分出来,会使代码更加的清晰(主要原因是看作者是这么干的)。
在几个小的专用模块(功能互相不是太干扰)中的宏,可以将常量一起单独存放到一个const.h中。什么叫常量呢?
比如我要访问某几个寄存器的端口。这个就可以声明在const.h中,而我在自己的程序假如定义个buf,将buf的大小定义为宏,这就不能被叫做常量(实际意义上的常量),因为你可以通过改宏的定义去修改buf的大小。但是寄存器端口是改不了的,所以它定义在了const.h中。
总结一句:值不能被修改的宏,放到const.h中!!!其他的宏放到单独模块的头文件中。
比如有些函数特别特别短,可以使用宏来代替。
关于其他的头文件的用法:比如global.h与global.c用于存放全局变量,type.h由于存放自己新定义的类型(可以不包括结构体),公用的函数声明放到proto.h中。