一、结构体
1. 结构体对齐
1.1 对齐规则
(1) 结构体变量的地址值能够被其对齐值整除,对齐值为最宽的成员大小;
(2)结构体变量的每一个成员都应被其对齐值整除,若不能则在该变量前补齐;
(3)结构体的总体大小能被其对齐值整除,若不能则在结构体后补齐。
1.2 对齐原因
(1)手动对齐:节省内存;
(2)自然对齐:提高数据读取效率。
(3)手动对齐方式:
a.增加预编译标识,#pragma pack(n)、#pragma pack()
b.GNU:__attribute__((packed, aligned(1)))
1.2 结构体命名
typedef struct _highSchoolSstudent_S //采用驼峰式命名,结构体以"_S"结尾、联合体以"_U"结尾、枚举以"_E"结尾
{
char szSchoolName[64]; //成员变量应以数据类型类型开头作区分,
usigned int unGrade;
int nClass;
}highSchoolSstudent_S;
二、变量函数命名(驼峰式)
1、函数一般使用大驼峰、变量一般使用小驼峰。
2、结构体以"_S"结尾、联合体以"_U"结尾、枚举以"_E"结尾,或者采用S+驼峰式命名。
3、成员变量以变量类型区分,也就是匈牙利命名法:
(1)一般变量:
bool 用b开头bFlg
int 用i开头iCount
short int 用n开头nStepCount
long int 用l开头lSum
char 用c开头cCount
unsigned char 用by开头
float 用f开头fAvg
double 用d开头dDeta
unsigned int(WORD) 用w开头wCount
unsigned long int(DWORD) 用dw开头dwBroad
字符串 用s开头sFileName
用0结尾的字符串 用sz开头szFileName
(2)指针变量:
一级指针:p开头;
二级指针:pp开头;
三级指针:ppp开头。
(3)全局变量以g_开头,静态变量以s_开头,常量以c_开头;
4、函数命名:
(1)参数名称的命名参照变量命名规范,应准确描述函数的功能,也应遵循动宾结构的命名法则;
(2)为了提高程序的运行效率,减少参数占用的堆栈,传递大结构的参数,一律采用指针或引用方式传递;
(3)为了便于其他程序员识别某个指针参数是入口参数还是出口参数,同时便于编译器检查错误,应该在入口参数前加入const标志。
参考:https://www.jianshu.com/p/bc5ce5923d53
原文:https://www.cnblogs.com/cdy0626/p/12504154.html