[C++程序设计]如何编写高效的C++函数

原创 2007年10月04日 14:39:00

如何编写高效的C++函数

                                                                                  ——MoaKap的C++学习笔记

编写函数是C++编程中最基本的过程.但如何编写高效的函数,就有很多要注意的东西了.下面总结一下编写C++函数时的几条基本思想。

1、用重用的思想编写函数

      1) 函数中不输出

             要使函数具有高的重用性,就要禁止在函数中输出结果,这样可以避免调用函数时不必要的输出。同时,不同的开发环境其输出环境也不尽相同。

     2) 花时间处理当前可能不需要的输入

             在函数编写过程中,当前可能并不需要某些变量的值,但考虑到函数以后的可用性,应该尽量所有输入都写出来,这样有利于在不同环境中调用函数。

     3) 检查所有输入的合法性

             对函数的每个输入(参数),都要检查其合法性。保证函数能够正常返回。

2、为一个函数编写注释

        注释包括各个参数的意义、函数的功能描述等。

        可以在实现函数之前,先完成函数的注释,然后根据功能实现函数。

3、返回值问题

       在有多个分支的函数中,确保每一个分支都有返回值。

4、参数设计

       尽量为每一个参数设计明了的参数名,使程序阅读者能够通过参数名得知参数的意义。

5、减少调用函数带来的负作用

      如上述说的在函数中显示处理结果就是一个典型的负作用。

      尽量不修改外部变量。

6、过程

      无返回值的函数,也叫做 过程。

最后,在编写程序时要遵循:

      尽量少使用全局变量。全局变量也可以用来在不同函数之间传递变量,但若使用了过多的全局变量,则所写的代码将很难维护和扩展。经验法则是,每1000行代码不应该超过两个全局变量。

      使用参数和类来传递信息。若使用很多的变量,则程序就会变得很冗长。这时,可以设计使相关变量聚集在一起的类,这样可以大大减少程序的长度。

       函数功能应该尽量简单,要善于将复杂的功能分解成多个简单的函数。每个函数长度不超过一屏(50行以内)。

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[C++程序设计]如何编写高效的C++函数

如何编写高效的C++函数                       ...

C++高效程序设计

文章来源:http://www.kuqin.com/language/20090314/39898.html摘要不管是否愿意承认,每个人都希望程序的运行速度越快越好。每天人们都你追我赶,好像明天就是末...

C++高效程序设计

C++高效程序设计作者:Joris Timmermans 译者:Xu Leasun (2003.04.02) (本译文的翻译已获得原作者授权,本译文的版权归雪川原所有,转载请与雪川联...

C++ 高效程序设计

摘要 不管是否愿意承认,每个人都希望程序的运行速度越快越好。每天人们都你追我赶,好像明天就是末日。而同时,公关部的那些家伙则不停的吼叫着,说他们的新引擎比其他人的更“快”更“好”。 我并不打算...

C++程序设计实验报告(十七)----实现冒泡排序算法,并将之定义为一个函数

第15周报告1: 实验目的:学会冒泡排序算法 实验内容:实现冒泡排序算法,并将之定义为一个函数 * 程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 201...

C++ Pirmer : 第十五章 : 面向对象程序设计之基类和派生的定义、类型转换与继承与虚函数

基类与派生类的定义以及虚函数的使用, 基类和派生类的相互转换和继承。
  • JY_95
  • JY_95
  • 2015-09-15 02:39
  • 534

程序设计竞赛——C++常用库函数

首先就是memcpy 表头文件: #include 定义函数: void *memcpy(void *dest, const void*src, size_t n) 函数说明: memcpy(...

多态与虚函数-编程题#3(C++程序设计第6周)

编程题 #3 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 ...

C++程序设计实验报告(十五)----用递归函数求解表达式

第14周报告1 实验目的:学会使用函数的递归 实验内容:用递归函数求解表达式 * 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了) * 程序的版权和版本声明部分 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)