3 函数调用

3.1 谨慎使用递归方法

等级: 【推荐】
说明:递归方式控制不当,可能会导致栈空间不够而崩溃。一般的递归都可以使用循环代替。

3.2 不要使用using namespace

等级: 【必须】
说明:这是曾经教科书上的一种写法,但是该方法存在严重的缺陷。因为如果多个不同的namespace里定义了相同名字的变量或者函数。将导致无法预知和理解编译器最终使用的是哪个命名空间中的数据。
        例子:

//file1
namespace Space1{int g_Private = 0;
};//file2
namespace Space2{int g_Private = 0;
};// file3
#include "file1.h"
#include "file2.h"
using namespace Space1;
using namespace Space2;
g_Private = 1;

上例中g_Private =1;到底改的是哪个命名空间里的数据呢?所以我们要改成:

#include "file1.h"
#include "file2.h"
Space1::g_Private = 1;
Space2::g_Private = 1;

3.3 提供给外部使用的接口函数要使用namespace控制

等级: 【要求】
说明:可以通过域名保证被调用接口更加释义,减少命名冲突。

3.4 调用有返回值的函数时需要处理其返回值

等级: 【要求】
说明:我们在代码逻辑设计时,需要考虑被调用函数不同返回值的处理逻辑,因为用户的环境无法假设。

(转载请指明出于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++编程规范“建议”——函数

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. java保留两位小数_java使double保留两位小数的多方法 java保留两位小数
  2. ORCALE数据库分页查询
  3. 初学者自学python要看什么书-初学者如何学习Python?掌握这17个实用小技巧快速入门!...
  4. JAVA删除临时文件
  5. (chap2 简单的Http协议) HTTP性能优化之持久连接Keep Alive
  6. 感知器及其在python中的实现_感知器及其在Python中的实现
  7. mysql root用户密码个性
  8. 安卓修改wifi已停用_手机连不上wifi显示已保存怎么回事【原因介绍】
  9. Java Object类详解
  10. leetcode 高薪_利用两种不同的方法解LeetCode第1312题:让字符串成为回文串的最少插入次数
  11. Linux内核分析 - 网络[一]:收发数据包的调用
  12. 看过曹县国际车展,我闯入了魔幻的塞伯坦
  13. CentOS7下使用yum快速安装配置oracle数据库
  14. 编程规范 —— 变量的命名
  15. jQuery实现title提示效果
  16. 项目resource下文件读取失败
  17. Vue+Element ui中常用表单验证----手机号、座机、传真、邮箱、身份证号、数字和带小数点的数字
  18. 低功耗视频解码芯片-TVP5150
  19. 第九届 蓝桥杯 决赛 交换次数
  20. 按理说机械硬盘和固态硬盘使用得当寿命几乎一样长,但为什么网上传言机械硬盘更容易坏?

热门文章

  1. 使用Python和OpenCV进行文本偏斜校正
  2. SpringCloud Feign声明式服务调用
  3. 用Python发一个高逼格的朋友圈
  4. 【非专业评测】发蜡、发膏、发泥、发油、啫喱、发膜、发胶、干胶、发棒、摩丝
  5. 在WebStorm里面搜索文件中出现的中文字符
  6. 如何将非官方扩展程序加入chrome的白名单
  7. Angular1.x的自定义指令directive参数配置详细说明
  8. shell设置系统环境变量的问题
  9. CentOS 6.3+Python 2.7.10安装pycurl遇到的问题汇总
  10. FastReport.net 使用 Winform WebForm打印