1. 变量
1.1 变量前缀
double long dlName
long lName
unsigned long ulName
short sName
char cName
unsigned char ucName
union unName 联合体
pointer pName 指针
pointer to fun pfName 函数指针
string szName 字符串 ;如 unsigned char szNameNum[10]
array aName 数组 ;如 unsigned char aucTask1[4]
global g_Name 全局变量
说明1: g_ 、a、p 可以在其他前缀之前,当有多个时,用 g_ap 顺序定义
说明2: sz 仅仅用于字符数组
说明3: 修饰符 * & 应该紧靠近变量名
1.2 变量命名
说明1: 变量名最好使用大小写交替的方式,要有实际意义
说明2: 不要使用 i j k ,循环使用 int iLoop 类似的变量表示
1.3 类型转换
说明1: 不同基本类型的变量之间赋值时,要有显示类型转换,
如:
int iNameNum = 1;
short sClassNum;
sClassNum = (short) iNameNum;
说明2: 类型转换时,对字长和符号类型,需要明确指出转换顺序
如:
long lNameNum = -1;
short sClassNum;
iClassNum = (long )((unsigned short) iNameNum); //先符号转换,后类型转换
说明3: 双目运算符 “==” “!=” “||" “&&” 两端的数据类型必须一致,不一致需要类型转换。
1.4 移位
说明1: 如果变量在后面使用需要移位,则最好定义成一个无符号数
其中:
对于有符号整数来说,右移,符号位不变
右移对于正数左边补0,负数补1
signed char 范围 -128~127 ; unsigned char范围 0~255
例1:
负数 1010 0110 >> 5 则得到 1111 1101
例2:
char ucVar1 = 39;
ucVar1 >> 4 得到: 2
char ucVar2 = 153;
ucVar2 >> 4 得到: -121
1.5 初始化
说明1: 所有变量使用前必须初始化;禁止将未初始化的变量做右值/入参
说明2: 变量用途唯一性
1.6 常量
说明1: 代码不要使用魔术字,尽量使用const 常量或者宏
说明2: 使用宏的时候,注意要是有括号
1.7 负数
说明1: 代码中避免使用负数,更加不要使用 -1 代码 全1
应该使用
unsigned long ulVar = 0xFFFFFFFF;
unsigned short ulVar = 0xFFFF;