1 变量
变量名的完整结构:<数据类型缩写>_<变量描述>_<数据结构>
说明:
(1) 变量名的下划线最好不超过2个;
(2) <数据类型缩写>和<变量描述>是必须的,<数据结构>部分不是必须的;
(3) 规则适用于形参和实参。
1.1 变量数据类型
序号 | 数据类型 | 数据长度(bit) | 变量缩写 |
---|---|---|---|
1 | unsigned char | 8 | u8,uc8,ui8 |
2 | signed char | 8 | sc8,c8,i8 |
3 | signed short int | 16 | ssi16,si16,s16,i16 |
4 | unsigned short int | 16 | usi16,ui16,us16,u16 |
5 | signed int | 32 | si32,i32 |
6 | unsigned int | 32 | ui32,u32 |
7 | float | 32 | f32 |
说明:
(1) 为了尽量-短-,建议用红色缩写;
(2) 必须标明数据长度,数字部分不能省;
(3) 能相互区别;
(4) 能满足上面3个条件其它缩写也OK。
1.2 变量描述
要求:
(1) 说清楚干嘛的,临时变量除外,但临时变量建议用一个或几个固定的字母或者词组;
举例:标志 Flag,计数值 Counter
典型的临时变量 i,j,k;或者temp1,temp2,temp3;或者aka1,aka2,aka3等
(2) 不要太长,按习惯对单词进行缩写或者带注释的情况下对固定单词进行固定缩写;
举例:不管什么灯 Led,直流源 Dc,交流源 Ac,脱氧核糖核酸 Dna,不明飞行物Ufo
电流 ‘Cur // 电流’ 等
(3) 不要加额外下划线,按首字母大写的规则划分多单词变量。
举例:红灯 LedRed,蓝灯 LedBlue,直流输入电流 DcInputCur, 夜王终结者 NightKingSlayer
1.3 数据结构
主要指的是指针,数组,结构体,当然指针不建议使用。
序号 | 数据结构 | 数据结构类型 |
---|---|---|
1 | 指针 | Ptr |
2 | 数组 | Arry |
3 | 结构体 | Stru |
说明:变量说明的缩写不唯一,但同一个工程文件统一就行。
1.4 形参和实参
形参和实参同名怎么办?
(1) 扩大形参的变量描述范围
举例:实参是 LedRed,形参 Led;实参是 Led,形参 TotalLed;实参 Hand,形参 Body
(2) 去掉下划线
举例:实参<数据类型缩写>_<变量描述>_<数据结构>,形参<数据类型缩写>_<变量描述><数据结构>;实参<数据类型缩写>_<变量描述>,形参<数据类型缩写><变量描述>
综上,如果需要一个无符的16位的结构体记录16个红灯的亮灭状态(只是为了说明怎么定变量名),这个变量可以命名为 u16_LedRed_Stru。
2 函数
函数名的完整结构:<数据类型 或 功能类型>_<函数描述>
说明:
(1) 函数名的下划线最好不超过2个;
(2) <函数描述>是必须的,<功能类型或数据类型>二者必有其一且可以兼而有之;
(3) 规则适用于主函数外的所有非底层函数。
2.1 函数描述
参考1.2。
2.2 功能类型
主要说明函数执行的什么类型的任务。
序号 | 函数功能 | 功能类型 |
---|---|---|
1 | 数据处理 | Dat |
2 | 特定功能函数 | App |
3 | 逻辑控制 | Log |
4 | 控制算法实现 | Alg |
2.3 数据类型
常用的数据类型参考1.1,函数数据类型主要指函数返回值数据类型和形参的数据类型,当有返回值或者函数有形参的时候需要注明数据类型,且数据类型必须是首位,数据类型标注参考Table I 。
Dat和Alg不一定有形参或者返回值,但是根据处理数据类型标注数据类型,对于出现需要处理多种数据类型的有浮点标注浮点,没有浮点与数据长度最长的对齐。如果是App或者Log函数可以不对涉及的处理数据类型进行标注。
如果形参包含多种数据类型有浮点标注浮点,没有浮点与数据长度最长的对齐。
综上,如果需要对一个采样数据进行浮点标幺化处理,该函数就可以命名为f32_Dat_SampleNormalization()。
3 宏定义
严格来说不是变量,但是也需要命名。
要求是所有字母全大写,允许多下滑线,命名结构包含信息:
(1) 什么功能或者设备;
举例:这个宏用在什么功能,电源SOURCE,电机 MOTOR或者其他
(2) 描述;
举例:是某个数据的阈值THRESHOLD或者某个计算的固定系数COEFFICIENT
(3) 直接对象说明。
举例:是周期频率 FREQ、温度 TEMPER、转速 RSPEED、电压 VOL或者电流 CUR
综上,电机转速阈值可命名为MOTOR_THRESHOLD_RSPEED。