C语言变量命名规范与编程风格指南
下载需积分: 19 | DOCX格式 | 20KB |
更新于2024-09-11
| 174 浏览量 | 举报
"C语言命名规范"
C语言的命名规范是编写清晰、可读性强的代码的基础,它有助于团队协作和代码维护。本规范主要涵盖了变量名的命名规则,包括了程序风格、变量定义的位置以及不同类型的变量如何命名等方面。
1. **程序风格**
- **阶梯层次组织**:代码的缩进应保持一致,通常每层次缩进4个空格,括号放置在下一行,匹配的大括号在同一列。
- **提示信息**:为了支持多语言开发,大部分提示信息应定义在资源中,只保留调试用的临时信息在代码中。
- **变量定义位置**:推荐将变量定义放在函数的开始位置,便于理解和管理。
2. **命名规则**
- **变量名的命名规则**:采用“匈牙利法则”,即变量名由变量类型和变量含义组成。类型首字母用于开头,后跟变量的英文意义或缩写,一般情况下,单词首字母大写。
- **布尔型**:bool或BOOL变量通常以“b”开头,如`bIsParent`。
- **字节型**:byte或BYTE变量以“by”开头,如`byFlag`。
- **整型**:short或int用“n”开头,如`nStepCount`;long或LONG用“l”开头,如`lSum`。
- **字符型**:char或CHAR用“c”开头,如`cCount`。
- **浮点型**:float用“f”开头,如`fAvg`;double用“d”开头,如`dDeta`。
- **无类型**:void或VOID用“v”开头,如`vVariant`。
- **无符号整型**:如unsigned int用“w”开头,如`wCount`;unsigned long用“dw”开头,如`dwBroad`。
- **句柄类型**:如HANDLE或HINSTANCE用“h”开头,如`hHandle`。
- **DWORD类型**:用“dw”开头,如`dwWord`。
- **字符串**:LPCSTR或LPCTSTR用“str”开头,如`strString`;零结尾的字符串用“sz”开头,如`szFileName`。
- **未定义类型**:对于未给出的变量类型,需要提出命名建议并提交给技术委员会。
- **指针变量**:一重指针以“p”开头,如`pfStat`;多重指针如二重指针以“pp”开头,三重指针以“ppp”开头,依次类推。
- **全局变量**:以“g_”开头,如`g_lFailCount`。
- **静态变量**:以“s_”开头,如`s_plPerv_Inst`。
- **成员变量**:在类或结构体中,以“m_”开头,如`m_SomeVariable`。
遵循这些规则,可以创建出易于阅读和理解的C语言代码,这对于代码的可维护性和团队合作至关重要。良好的命名习惯不仅使代码更整洁,也有助于减少潜在的错误,提高编程效率。在实际编码过程中,应始终保持一致性,并根据项目需求进行适当的调整。
相关推荐










shenhua27
- 粉丝: 0
最新资源
- Gh0st3.75稳定版服务端:ARP监控与键盘记录
- BugTracker:软件错误追踪与管理利器
- Swing实现仿分页效果的动态表格设计
- 挖掘机焊接定位机构设计文档
- MFC框架下实现曲线勾画程序的探究
- 掌握Spring Cloud Config与Git的分布式配置中心
- 探索逻辑推理题的程序实现与源码分析
- Android图片自定义控件:解决缩放失真问题
- 设计装置文档:教学用电流表
- Android平台动画实现原理及示例解析
- 安卓新手入门经验分享与心得总结
- Apache日志分割神器cronolog-1.6.2详细介绍
- 配置OpenGL开发环境:freeglut、glew与VS2013整合指南
- Android网络XML文件解析方法及示例源码
- Hadoop、Spark、Scala和Maven安装包综合指南
- VMware Workstation 11解锁虚拟OS X系统的补丁工具