9 风格

9.1 优先使用匈牙利命名法

等级: 【推荐】
说明:该方法由微软总设计师设计。Windows上编程最好遵从该标准。详细介绍见:http://zh.wikipedia.org/wiki/%E5%8C%88%E7%89%99%E5%88%A9%E5%91%BD%E5%90%8D%E6%B3%95

9.2 变量名结合使用匈牙利命名法和驼峰命名法

等级: 【推荐】
说明:比如 int nMaxCount = 1;中变量前缀n表示int型变量,MaxCount是表意,其就是使用驼峰命名法(首字母大写)。

9.3 默认关键字后有圆括号要用空格分离

等级: 【推荐】
说明: if/switch/while/for/catch与后边的圆括号之间加一个空格。这样可以快速区分操作圆括号的是API还是语言关键字。

9.4 全局变量使用g作为前缀

等级: 【推荐】
说明:用于明显区分该变量是全局变量。

9.5 全局静态变量使用s_作为前缀

等级: 【推荐】
说明:用于明显区分该变量是全局变量。

9.6 类静态成员使用_s_前缀

等级: 【推荐】
说明:用于明显区分该变量是全局变量还是类静态成员变量。

9.7 全局静态变量命名尽量长而且有意义

等级: 【建议】
说明:这样可以保证不会出现同名。

9.8 枚举类型成员,使用全大写蛇形命名法

等级: 【建议】

说明:即全部字母大写,单词间用下划线分隔。最好使用E_作为前缀

(转载请指明出于breaksoftware的csdn博客)

Windows客户端C/C++编程规范“建议”——风格相关推荐

  1. Windows客户端C/C++编程规范“建议”——前言

    前言 工作中接触了很多编程规范.其中最有意思的是,公司最近发布了一版C/C++编程规范,然后我看到该规范的最后一段时,有这么一句:"该规范不适用于Windows平台开发".看来这份 ...

  2. Windows客户端C/C++编程规范“建议”——宏

    6 宏 6.1 减少宏的使用 等级: [建议] 说明:宏的使用,将使得调试变得麻烦.所以在设计和使用宏的时候,请确保宏的逻辑是阅读者不会去关心细节的行为. 6.2 宏定义中字母需大写 等级: [必须] ...

  3. Windows客户端C/C++编程规范“建议”——结构

    5 结构 5.1 不要使用goto 等级: [必须] 说明:在大型项目中,goto的滥用会导致灾难性后果.因为我们程序中一般不存在从一个函数体内部跳转到另一个函数体内部的场景,所以我们可以将跳转控制在 ...

  4. Windows客户端C/C++编程规范“建议”——函数

    1 函数 1.1 代码行数控制在80行及以内 等级:[要求] 说明:每个函数的代码行数控制应该控制在80行以内.如果超过这个限制函数内部逻辑一般可以拆分.如果试图超过这个标准,请列出理由.但理由不包含 ...

  5. Windows客户端C/C++编程规范“建议”——变量和常量

    8 变量和常量 8.1 尽量不要使用全局变量 等级: [要求] 说明:全局变量的滥用和goto的滥用一样,都是一种灾难.它将使得逻辑变得难以调试和控制. 8.2 不涉及外部使用的全局变量需要使用sta ...

  6. Windows客户端C/C++编程规范“建议”——文件

    7 文件 7.1 正确使用#include 等级:[推荐] 说明:#include <>和#include ""导致编译器在搜索文件时,搜索的路径顺序不同.所以需要正确 ...

  7. Windows客户端C/C++编程规范“建议”——表达式和运算

    4 表达式和运算 4.1 比较操作中将常量设置为左值 等级: [推荐] 说明:编写代码时,如果将常量设置为右值.可能因马虎将"=="写成"="导致逻辑错误.这种 ...

  8. Windows客户端C/C++编程规范“建议”——函数调用

    3 函数调用 3.1 谨慎使用递归方法 等级: [推荐] 说明:递归方式控制不当,可能会导致栈空间不够而崩溃.一般的递归都可以使用循环代替. 3.2 不要使用using namespace 等级: [ ...

  9. Windows客户端C/C++编程规范“建议”——指针

    2 指针 2.1 尽量使用智能指针 等级: [推荐] 说明:正确使用智能指针可以省去指针管理的工作. 2.2 类成员变量指针释放后一定要置空 等级: [必须] 说明:如果类成员变量指针在释放后没有置空 ...

最新文章

  1. 【C#】Gif文件生成
  2. C# 实现HTML转换成图片的方法
  3. URAL 1225 Flags
  4. 内核堆栈 用户堆栈_堆栈痕迹从何而来?
  5. 2019年Java开发者进阶手册.pdf
  6. Go 语言泛型,简明入门教程
  7. 纯新手DSP编程--5.30--任务的通信和同步
  8. python新手入门.pdf_所有Python入门书籍的整理,初学者必看,附赠所有电子版(一)...
  9. TopJUI通过简单的代码实现复杂的批量提交功能
  10. MFC PreTranslateMessage(MSG* pMsg)中调用DoModal()模态窗口问题
  11. 大二暑假java培训第七天
  12. 编写第一个JavaFX界面
  13. Java——FileOutputStream,字符输出流,以字符为单位写出数据
  14. 希腊字母发音对照表(发音即对应latex表达式)
  15. 北大计算机图灵班,北大首期“图灵班”开班
  16. 图像分割与提取:交互式前景提取(附OpenCV代码实现)
  17. 气象ts评分_中国气象局--国家气候中心--气候系统监测·诊断·预测·评估
  18. Ubuntu搭建Http服务器用于下载Ubuntu文件
  19. Planbar 2018 新功能 BIM 加密狗更新
  20. Flink 的背压机制(Back Pressure)

热门文章

  1. 点、线、面生成mvt(MapBox Vector Tile)格式的瓦片总结
  2. Linux(Nginx)+Java SpringBoot视频微服务搭建
  3. YOLO-v5训练自己的数据+TensorRT推理部署(2)
  4. AI视频行为分析系统项目复盘——技术篇2:视频流GPU硬解码
  5. Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.解决方案
  6. Udacity机器人软件工程师课程笔记(十一)-ROS-编写ROS节点
  7. UE5废墟破坏游戏场景创建学习教程
  8. .net 去除特殊字符
  9. Python几种主流框架
  10. Docker 清理命令集锦