前言:
为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。
1. 基本数据类型
基本类型:short,int,long,char,float,double 这六个关键字是 C 语言里 6 种基本数据类型。
一般情况下,不同的数据类型占用的内存情况如下表:针对 32 系统,不同的平台还需具体测试一下(使用 sizeof测试)。
数据类型 | 占用内存大小 |
---|---|
short | 2 byte |
int | 4 byte |
long | 4 byte |
float | 4 byte |
double | 8 byte |
char | 1 byte |
2. 变量的命名规则
2.1 一般规则
(1)命名应该直观可读,可望文生义,便于理解记忆。标识符一般用英语单词或其组合。
(2)命名长度应该符合“min-Length && max-Information”原则。
eg:变量名 MaxVal。
标识符一般不要过长,较长的单词可通过去掉“元音”形成缩写。英文单词尽量不缩写,如果有缩写,要注明意思。
(3)当标识符由多个单词组成时,没个词的第一个字母大写,其余小写。
eg:int CurrentVal;
(4)尽量避免命名名字中出现数字,如Value1,Value2等,除非逻辑上需要编号。
eg:驱动开发时管脚的命名。
(5)对在多个文件之间共同使用的全局变量或函数要加规范限定符(建议使用模块的缩写作为限定符)。(GUI_等)
(6)标识符命名规则
标识符的命名分为两部分:规范标识符前缀(后缀)+ 含义标识。非全局变量可以不使用范围限定标识符。
(7)作用域前缀命名规则
编号 | 标识符类型 | 作用域前缀 |
---|---|---|
1 | Global Variable | g |
2 | File Static Variable(native) | n |
3 | Function Static Varibable | f |
4 | Auto Variable | a |
5 | Global Function | g |
6 | Static Function | n |
(8)数据类型前缀命名规则
编号 | 前缀 | 后缀 | 数据类型 | 举例 | 备注 |
---|---|---|---|---|---|
1 | bt | bit | Bit btVariable | ||
2 | b | boolean | boolean bVariable | ||
3 | c | char | char cVariable | ||
4 | i | int | int iVariable | ||
5 | s | shrot[int] | shrot[int] Variable | ||
6 | l | long[int] | long[int] lVariable | ||
7 | u | unsigned[int] | unsigned[int] uiVariable | ||
8 | d | duoble | double dVariable | ||
9 | f | float | float fVariable | ||
10 | p | pointer | void *vpVariable | 指针前缀 | |
11 | v | void | void vVariable | ||
12 | st | enum | enum A stVariable | ||
13 | st | struct | struct A stVariable | ||
14 | st | union | union A stVariable | ||
15 | fp | function point | void (*fpGetModeFuncList_a[])(void) | ||
16 | _a | array of | char cVariable_a[TABLE_MAX] | ||
17 | _st | typedef enum/struct/union | typedef struct SM_EventOpt{unsigned char;unsigned in;char}SM_EventOpt_st,*SM-EventOpt_pst; | 当定义结构数据类型时使用_st后缀;当定义结构类型为指针类型时使用_pst后缀 |
(9)含义标识命名规则:变量名使用名词性词组,函数名使用动词性词组。
编号 | 变量名 | 目标词 | 动词 | 状语 | 目的地 | 含义 |
---|---|---|---|---|---|---|
1 | DataGotFromSD | Data | Got/Get | From | SD | 从SD中取得数据 |
2 | DataDeletedFromSD | Data | Deleted/Delete | From | SD | 从SD中删除数据 |
变量含义:目标词+动词(过去分词)+状语+目的地;
(10)程序中不得出现仅靠大小写区分的相似标识符。
eg:int x,X;
(11)一个函数名禁止被用于其他处。
(12)所有宏定义,枚举常数,只读变量全部用大写字母命名,用下划线分割单词。
eg:
const int MAX_LENGTH = 100;
#define FILE_PATH “/usr/tmp”
(13)考虑到习惯问题,局部变量中可采用通用的命名方式,仅限于n,i,j等作为循环变量使用。
(14)定义变量时不要忘记了初始化。定义变量时编译器并不一定清空这块内存,它的值可能是无效的数据。
(15)不同数据类型之间的运算要注意精度扩展的问题,一般低精度数据向高精度数据扩展。