首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Windows客户端C/C++编程规范“建议”——函数调用

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

作者头像
方亮
发布于 2019-01-16 06:31:54
发布于 2019-01-16 06:31:54
56700
代码可运行
举报
文章被收录于专栏:方亮方亮
运行总次数:0
代码可运行

3 函数调用

3.1 谨慎使用递归方法

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

3.2 不要使用using namespace

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//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;到底改的是哪个命名空间里的数据呢?所以我们要改成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include "file1.h"
#include "file2.h"
Space1::g_Private = 1;
Space2::g_Private = 1;

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

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014年07月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Windows客户端C/C++编程规范“建议”——函数
等级:【要求】 说明:每个函数的代码行数控制应该控制在80行以内。如果超过这个限制函数内部逻辑一般可以拆分。如果试图超过这个标准,请列出理由。但理由不包含如下:
方亮
2019/01/16
1.6K0
Windows客户端C/C++编程规范“建议”——表达式和运算
等级:【推荐】 说明:编写代码时,如果将常量设置为右值。可能因马虎将“==”写成“=”导致逻辑错误。这种场景下,编译器是不会报错的,代码检查也比较容易被忽视。         例子:
方亮
2019/01/16
6430
Windows客户端C/C++编程规范“建议”——变量和常量
等级:【要求】 说明:全局变量的滥用和goto的滥用一样,都是一种灾难。它将使得逻辑变得难以调试和控制。
方亮
2019/01/16
8040
Windows客户端C/C++编程规范“建议”——风格
等级:【推荐】 说明:该方法由微软总设计师设计。Windows上编程最好遵从该标准。详细介绍见:http://zh.wikipedia.org/wiki/%E5%8C%88%E7%89%99%E5%88%A9%E5%91%BD%E5%90%8D%E6%B3%95
方亮
2019/01/16
9130
Windows客户端C/C++编程规范“建议”——前言
        工作中接触了很多编程规范。其中最有意思的是,公司最近发布了一版C/C++编程规范,然后我看到该规范的最后一段时,有这么一句:“该规范不适用于Windows平台开发”。看来这份规范是由做其他平台开发的同学制定的。那么做Windows开发的人都去哪儿了?后来由于工作需要,项目组需要我制定一份编程规范。这也是我这系列博客的由来。(转载请指明出于breaksoftware的csdn博客)
方亮
2019/01/16
8400
c#的细节(二)-修饰符
Jianbo
2018/01/08
7550
Windows客户端C/C++编程规范“建议”——指针
等级:【必须】 说明:如果类成员变量指针在释放后没有置空,将出现如下问题: a) 无法判断指针是否已经是野指针 b) Dump分析很难发现是野指针函数调用导致崩溃
方亮
2019/01/16
5570
Windows客户端C/C++编程规范“建议”——结构
等级:【必须】 说明:在大型项目中,goto的滥用会导致灾难性后果。因为我们程序中一般不存在从一个函数体内部跳转到另一个函数体内部的场景,所以我们可以将跳转控制在函数内部,从而避免灾难。         例子:
方亮
2019/01/16
5180
从基础入门到学穿C++(C++语法基础篇)【超详细】【一站式速通】
C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。
see.
2024/06/04
9570
Windows客户端C/C++编程规范“建议”——宏
等级:【建议】 说明:宏的使用,将使得调试变得麻烦。所以在设计和使用宏的时候,请确保宏的逻辑是阅读者不会去关心细节的行为。
方亮
2019/01/16
6260
Windows客户端C/C++编程规范“建议”——文件
说明:#include <>和#include “”导致编译器在搜索文件时,搜索的路径顺序不同。所以需要正确使用#include,以避免包含错了头文件。
方亮
2019/01/16
8870
C++入门基础,看这篇就足够了!
C++是在C语言的基础上,又容纳了许多面向对象的编程思想,并增加了许多有用的库,以及编程范式,如果以及学习C语言后,对C++的学习也是很有帮助的。 C++补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的,比如:作用域方面,IO方面,函数方面,指针方面,宏方面
Yui_
2024/10/16
6590
C++入门基础,看这篇就足够了!
【C++】C++基础
下面只是看一下C++有多少关键字,不对关键字进行具体的讲解。后面对应文章会详细讲解。
ZLRRLZ
2024/12/13
3040
【C++】C++基础
[C++入门]C++入门建议与C++入门基础
无论是哪种语言的学习,都有优劣之分,java简单只是简单在好理解,但是学完完整的技术栈你就会发现,无论那种语言都很难学难精。
用户11367452
2024/11/21
1300
[C++入门]C++入门建议与C++入门基础
【C++】C++入门
C语言是结构化和模块化的语言,适合处理小规模的程序,对于复杂的问题、规模较大的程序,需要高度的抽象和建模时,C语言则不合适,这时出现了面向对象的思想,支持面向对象的程序设计语言应运而生
s-little-monster
2024/06/25
4330
【C++】C++入门
[C++]C++基础知识概述
  C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适,为了解决软件危机,20世纪80年代,计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。
IT编程爱好者
2023/04/12
1.1K0
[C++]C++基础知识概述
C++名字空间详解
名字空间(namespace)是由标准C++引入的,是一种新的作用域级别。原来C++标识符的作用域分为三级:代码块({…}和函数体)、类域和全局作用域。如今,在类作用域和全局作用域之间,C++标准又添加了名字空间域这一个作用域级别。
恋喵大鲤鱼
2018/08/03
1.4K0
C++名字空间详解
Hadoop HDFS 实现原理图文详解
Hadoop分布式文件系统 (HDFS) 是运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)。
一个会写诗的程序员
2021/12/16
1.5K0
Hadoop HDFS 实现原理图文详解
C++入门
C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式 等。熟悉C语言之后,对C++学习有一定的帮助,本章节主要目标: 1. 补充C语言语法的不足,以及C++是如何对C语言设计不合理的地方进行优化的,比如:作用 域方面、IO方面、函数方面、指针方面、宏方面等。 2. 为后续类和对象学习打基础
绝活蛋炒饭
2024/12/16
2040
C++入门
C++入门基础
C++兼容C语言绝大多数的语法,所以C语言实现的hello world依旧可以运行,C++中需要把定义文件代码后缀改为.cpp,vs编译器看到是.cpp就会调用C++编译器编译,linux下要用g++编译,不再是gcc
用户11290648
2024/09/25
1370
C++入门基础
相关推荐
Windows客户端C/C++编程规范“建议”——函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档