嵌入式基础-C语言命名规则
定义宏定义,全局变量,功能函数命名规则不仅优化代码的可读性,还方便其他人员开发
1.宏定义命名规则
宏定义可以划分为项目宏定义和变量宏定义
项目宏定义:要求清楚描述被某个功能所用
变量宏定义:要求清楚描述属于某个功能的变量
项目宏定义:定义需要被其他开发人员认可方可作为标准
#define SUPPORT_FEFD_IR 1 /* 支持喂食红外对管功能 */
#define SUPPORT_FOOD_IR 1 /* 支持桶内余粮红外对管功能 */
#define SUPPORT_STEPPER_MOTOR 1 /* 支持步进电机功能 */
#define SUPPORT_ULTRASONIC_MODULE 1 /* 支持超声波模块功能 */
变量宏定义:变量宏定义需要统一标准,精确到属于某个功能模块的变量
#define DEF_JKCOM_FEFD_IR_CHECK_NUM 5 /* 触发落粮时的检测5次 */
#define DEF_JKCOM_FOOD_IR_CHECK_TIME 10 /* 周期检测桶内余粮情况10秒 */
#define DEF_JKCOM_STEPPER_MOTOR_MAX_STEP_SIZE 8 /* 步进电机最大步长 */
#define DEF_JKCOM_ULTRASONIC_MODULE_CHECK_NUM 5 /* 超声波模块检测5次 */
2.全局变量命名规则
全局变量需要清楚描述属于某个功能,作用要区分为标志位还是计数
unsigned char g_JKCom_feed_ir_detect_flag = 0; /* 喂食红外对管触发标志 */
int g_JKCom_feed_ir_detect_num_now = 0; /* 喂食红外对管目前累计触发的次数 */
unsigned char g_JKCom_food_ir_detect_flag = 0; /* 桶内余粮红外对管触发标志 */
3.功能函数命名规则
功能函数命名需要区分功能模块,如有多种需求则要按照客户命名来实现
Wrap说明函数可以被外部其他文件和功能模块调用,没有Wrap则为内部函数调用
#define _IN /* 参数传入 */
#define _OUT /* 参数传出 */
void JKCom_feed_ir_detect(_IN int num,_IN int time); /* 喂食红外对管检测函数 */
void JKCom_food_ir_detect(_IN int num,_IN int time); /* 喂食红外对管检测函数 */
void Wrap_JKCom_XA_feed_reversal(_IN int num,_IN int time); /* 代表某客户的定制反转功能 */