欢迎光临
我们一直在努力

C语言变量命名规范:常见前缀、后缀与惯例总结

写C语言代码,变量命名直接影响可读性。本文整理常用的命名前缀、后缀和惯例,适合初学者建立命名习惯。


一、指针相关前缀

前缀含义示例
p 指针(pointer) pNode, pData, pBuf
pp 二级指针 ppList, ppArgs
pfn 函数指针 pfnCallback, pfnHandler

 int *pValue = &value;
 char **ppLines = NULL;
 void (*pfnOnClick)(int) = NULL;


二、类型/用途前缀

前缀含义示例
sz 以零结尾的字符串(string zero) szName, szBuf
n 数量(number/count) nCount, nLen
c 计数或字符 cItems, cCh
b 布尔值(bool) bFlag, bIsReady
dw 32位无符号整数(DWORD) dwAddr, dwSize
w 16位无符号整数(WORD) wPort, wFlags
ch 单个字符(char) chKey, chFirst
u 无符号(unsigned) uCount, uSize

 char szName[64] = "hello";
 int nItems = 10;
 bool bFound = false;
 unsigned int uTimeout = 3000;


三、常见后缀

后缀含义示例
Buf 缓冲区 recvBuf, tmpBuf
Cnt / Count 计数 itemCnt, errCount
Len / Length 长度 strLen, dataLength
Arr / Array 数组 scoreArr, nodeArray
List 列表/链表 studentList, taskList
Str / String 字符串 inputStr, formatString
Ptr 指针(后缀形式) dataPtr, nodePtr
Cb 回调函数(callback) onClickCb, timerCb
Idx / Index 索引 rowIdx, startIndex
Max / Min 最大/最小值 maxRetry, minSize
Tmp / Temp 临时变量 tmpVal, tempBuf

 char recvBuf[1024];
 int itemCnt = 0;
 int strLen = strlen(inputStr);
 int rowIdx = 0;


四、循环与临时变量惯例

变量用途
i, j, k 循环计数器(i 外层,j 中层,k 内层)
tmp / temp 临时存储
ret 函数返回值
err / errno 错误码
ch 单个字符
buf 通用缓冲区
pos / offset 位置/偏移量
p 短作用域指针

 int ret = 0;
 int i;
 for (i = 0; i < n; i++) { … }
 ​
 int tmp = a;
 a = b;
 b = tmp;


五、结构体与类型命名

C语言没有 class,但结构体和类型名用大驼峰(PascalCase),变量名用小写下划线或小驼峰:

 // 类型定义:大驼峰
 typedef struct StudentInfo {
     char name[64];
     int age;
     float score;
 } StudentInfo;
 ​
 // 变量:小写下划线或小驼峰
 StudentInfo student_info;
 StudentInfo studentInfo;
 ​
 // 常见 typedef 后缀
 typedef struct Node_t { … } Node_t;      // _t 表示类型
 typedef struct tagNode { … } tagNode;    // tag 前缀(Windows风格)


六、常量与宏命名

风格示例
全大写下划线 #define MAX_BUFFER_SIZE 1024
全大写下划线 const int DEFAULT_PORT = 8080;
k 前缀(Google风格) const int kMaxRetry = 3;

 #define MAX(a, b) ((a) > (b) ? (a) : (b))
 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))


总结速查表

 指针:   p + 名词       pNode, pData, pBuf
 二级指针: pp + 名词       ppList, ppArgs
 字符串: sz + 名词       szName, szPath
 数量:   n + 名词         nCount, nLen
 布尔:   b + 描述         bFlag, bIsReady
 返回值: ret
 错误码: err
 循环:   i, j, k
 临时:   tmp
 缓冲区: buf / *Buf
 回调:   *Cb
 索引:   *Idx

赞(0)
未经允许不得转载:171主机测评 » C语言变量命名规范:常见前缀、后缀与惯例总结
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址