模块化编程
typedef enum
{
STATE_M_INIT, /*!< bus is in initial state. */
} MasterRTUstate_e;
#define STATE_M_INIT 0
枚举与宏的区别,在于宏定义后是全局的,无论是在C文件还是H文件,不能重复定义。而宏可以重复定义在两个h文件中,不冲突。
函数指针类型如下
typedef int8_t ( *SerialDMA_Receive_f ) (const uint8_t *pdat, const uint8_t len);和宏一样,可以重复。
但是函数在C文件定义后,无论是否在H文件中声明,都是全局的,其他c和h文件在定义同名函数都是重复定义。
如果想定义同名函数,只能定义局部的,在不同c文件定义相同名字函数,必须加static。
不像C++具有多态性。
以上都是在ARMCC(keil)编译器中验证。后续不同编译器gcc有待验证。
浙公网安备 33010602011771号