5 结构

5.1 不要使用goto

等级: 【必须】
说明:在大型项目中,goto的滥用会导致灾难性后果。因为我们程序中一般不存在从一个函数体内部跳转到另一个函数体内部的场景,所以我们可以将跳转控制在函数内部,从而避免灾难。
        例子:

do {if ( False ) {break;// 相当于goto}
} while (0);

5.2 不要利用异常机制实现流程的跳转

等级: 【必须】

说明:该方法比较常见于防逆向等方面,但是我们普通编程方式应该严禁使用。否则将增加代码阅读的难度。

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

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

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

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

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

    9 风格 9.1 优先使用匈牙利命名法 等级: [推荐] 说明:该方法由微软总设计师设计.Windows上编程最好遵从该标准.详细介绍见:http://zh.wikipedia.org/wiki/%E ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 在 Mac OS X 上安装 TensorFlow
  2. 不用临时变量,交换两个变量的值
  3. Java NIO使用及原理分析(二)
  4. 【牛客网】安置路灯 C++
  5. jsp连接mysql数据库代码_JSP连接MySQL数据库代码
  6. 物联网(车联网)平台架构方案
  7. 图解ArcGIS API for JavaScript开发环境搭建
  8. 谷歌正在为Chromebook自研基于Arm的处理器
  9. hadoop hive集群_失眠大数据专家,基于Hadoop不同版本搭建hive集群(附配置文件)
  10. TCP协议(标志位URG、PSH,定时器,连接的建立和断开)
  11. javaweb中服务器启动所执行的程序
  12. 零基础学python要多久-零基础学习Python大概要多久,感悟分享?
  13. 离散数学集合论与数理逻辑基本概念
  14. Python API接口压力测试简单实现(并发测试)
  15. Mujoco的关节与外力和驱动器
  16. Java browsing
  17. MAC锁屏不断网(快捷键启用屏保)
  18. 战疫之下的“大数据+网格化”管理,谁在颠覆“智能城市”的路径?
  19. 创建镜像问题出现的错误
  20. CSS进阶(5)- 浏览器兼容性

热门文章

  1. mac 思科 链路聚合_TCP/IP协议栈-之-数据链路层分析
  2. 使用Python,OpenCV进行形态学操作
  3. halcon与QT联合:(5.1)瓶盖检测以及QT界面搭建
  4. 使用Python+OpenCV构建文档扫描程序
  5. ~~~端午安康~~~
  6. java list 拼音排序_java中实现List集合中对象元素按其属性的中文拼音排序
  7. perl 如何更新_Perl 进度条模块
  8. 基于SfM计算相机姿态
  9. 【3】npm run build Vue的项目,如何修改相对路径配置
  10. Autocad 3D 完全学习教程