C之函数设计原则(四十二)

我们今天来讲下函数的设计原则。函数从意义上应该是一个独立的功能模块,函数名要在一定程度上反映函数的功能;函数参数名要能够体现参数的意义,尽量避免在函数中使用全局变量。

A、当函数参数不应该在函数体内部被修改时,应加上 const 声明;如果参数是指针,且仅作输入参数,则一个加上 const 声明。例: void str_copy(char *str_dest, const char *str_src);

B、不能省略返回值的类型,如果函数没有返回值,则应声明其为 void 类型;对参数进行有效性检查,对于指针参数的检查尤为重要;不要返回指向“栈内存”的指针,栈内存在函数体结束时被自动释放。

C、函数体的规模要小,尽量控制在 80 行代码之内相同的输入对应相同的输出,避免函数带有“记忆”功能;避免函数有过多的参数,参数个数尽量控制在 4 个以内。

D、有时候函数不需要返回值,但为了增加灵活性,如支持链式表达,可以附加返回值。

char s[64];  int len = strlen(strcpy(s, "android"));

E、函数名与返回值类型在语义上不可冲突。

原文地址:http://blog.51cto.com/12810168/2112142

时间: 2024-11-08 21:49:57

C之函数设计原则(四十二)的相关文章

js函数设计原则

一般认为函数指具有返回值的子程序,过程指没有返回值的子程序.C++中把所有子程序成为函数,其实那些返回值为void的 函数在语义上也是过程.函数与过程的区别更多是语义上的区别,而不是语法的区别. 语言纯化论者认为一个函数应该只有一个返回值,这和数学函数一样.即函数只接受输入(参数),通过参数运算返回结果. 除此之外的效果被称为函数的副作用,比如修改全局变量. function sum1(x, y) { return x+y }function sum2(x, y) { alert(x+y) }s

NeHe OpenGL教程 第四十二课:多重视口

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第四十二课:多重视口 多重视口 画中画效果,很酷吧.使用视口它变得很简单,但渲染四次可会大大降低你的显示速度哦:) 欢迎来到充满趣味的另一课.这次我将向你展示怎样在单个窗口内显示多个视口.这些视口在窗口模式下能正确的调整大小.其中有

QT开发(四十二)——DOM方式解析XML

QT开发(四十二)--DOM方式解析XML 一.DOM简介 1.DOM简介 DOM是Document Object Model的简写,即XML文档对象模型,是由W3C提出的一种处理XML文档的标准接口. DOM 一次性读入整个XML文档,在内存中构造为一棵树(DOM树)将XML文件表示成一棵树,便于随机访问其中的节点,但消耗内存相对多一些.能够在这棵树上进行导航,比如移动到下一节点或者返回上一节点,也可以对这棵树进行修改,或者是直接将这颗树保存为硬盘上的一个 XML 文件. 2.XML DOM节

2017-2018-1 《Linux内核原理与设计》第十二周作业

<linux内核原理与设计>第十二周作业 Sql注入基础原理介绍 分组: 和20179215袁琳完成实验 一.实验说明 ??SQL注入攻击通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,本章课程通过 LAMP 搭建 Sql 注入环境,两个实验分别介绍 Sql 注入爆破数据库.Sql 注入绕过验证两个知识点. 首先通过下面命令将代码下载到实验楼环境中,作为参照对比进行学习. $ wget http://labfil

第四十二象 乙巳

第四十二象 乙巳 谶 曰美人自西来 朝中日渐安 长弓在地 危而不危 颂 曰西方女子琵琶仙皎皎衣裳色更鲜此时浑迹居朝市闹乱君臣百万般 金圣叹注解:此象疑一女子当国,服色尚白,大权独揽,几危社稷,发现或在卯年,此始乱之兆也. 推背图网解:此象应旅卦,表示小心谨慎,如山火一刻不停,奔波劳累之象,卦中主人正应此象. 网上众多解释,轻轻松松地把美人说成是江*青,没有一个说对.不能因为被打倒了,什么坏事都往人家身上推,那不是负责的态度.墙倒众人推,这是中国人的痼疾,是害人的.此象中的女人比江*青强多了,无能

第四十二章

第四十二章1 道生“肾” 道生一,一生二,二生三,三生万物. 道生出混沌之气,混沌之气分出阴阳,阴阳又交汇出新的物质,从而生出万物. 道在我们身体内体现为“肾精”,要保护好.各位朋友大家好,今天我们接着来聊<道德经>.我们来看看老子带给我们什么样新的人生启发了,每天启发一点,天天进步.今天我们开始学习第四十二章,非常开心.因为我们<道德经>已经学习到一半的位置了,因为整个八十一章,我们学习到第四十二章了,过了一半了,这时间也是飞快的.我之前预计3年,我估计现在2年差不多讲完了.因为

【Unity 3D】学习笔记四十二:粒子特效

粒子特效 粒子特效的原理是将若干粒子无规则的组合在一起,来模拟火焰,爆炸,水滴,雾气等效果.要使用粒子特效首先要创建,在hierarchy视图中点击create--particle system即可 粒子发射器 粒子发射器是用于设定粒子的发射属性,比如说粒子的大小,数量和速度等.在创建完粒子对象后,在右侧inspector视图中便可以看到所有的粒子属性: emit:是否是使用粒子发射器. min size:粒子最小尺寸. max size:粒子最大尺寸. min energy:粒子的最小生命周期

设计模式中的六大设计原则之一,二

最近在学习设计模式方面的知识,首先接触到的是设计模式中的六大设计原则: 1.单一职责原则: 2.里氏替换原则:3.依赖倒置原则:4.接口隔离原则:5.迪米特法则:开闭原则.下面我来讲讲我对这六大设计自己的理解,如有欠缺地地方,请大家及时指出啊...   1.单一职责原则:应该有且仅有一个原因引起类的变更.通俗的说,即一个类只负责一项职责.下面我们举一个具体的例子来说明一下什么是单一职责原则.电话通话的时候有4个过程发生:拨号,通话,回应,挂机,首先看下面这样一个借口,如图1所示: 图1. 我们来

ActionScript3游戏中的图像编程(连载四十二)

2.3.4 Photoshop高度==Flash距离? 剩下高度一项了,跟距离相对应吗? 但是,高度以角度为单位,但距离却是像素,似乎拉不上关系.不过我们照样做下试验:先试一下Photoshop的高度.在调整的过程里发现,浮雕的厚度并没随着高度的增加而变大.只感觉到光影往某个方向微妙地移动着. 图 2.69~图 2.75展示了不同高度下的效果. 图 2.69 高度=0° 图 2.70 高度=15° 图 2.71 高度=30° 图 2.72 高度=45° 图 2.73 高度=60° 图 2.74

程序员的奋斗史(四十二)——大学断代史(六)——我与图书馆

文/温国兵 作为一个爱读书之人,图书馆简直是人间天堂.反之,不过地狱. 读书的好处在于,可以穿越古今中外,超越时间和空间的界限,到达你想到达的地方.你可以回到唐朝和诗仙酌酒言欢,可以回到战国和庄子高谈庄周梦蝶.鲲鹏之硕,可以回到18世纪的法国聆听哲人卢梭的教导,可以回到19世纪的德国瞻仰尼采的智慧,可以回到20世纪的中国感受王小波的特立独行,可以回到春秋时期领略老子的道,可以回到20世纪感受徐志摩的唯美诗歌--书中自有黄金屋,书中自有颜如玉,从书中可以获取到广阔的精神食粮,指引着我们前进,教导我