找回密码
 立即注册
查看: 1169|回复: 10

[简易教程] 函数设计一般规则和技巧

[复制链接]
发表于 2019-4-23 14:38 | 显示全部楼层 |阅读模式
编写函数时,应该先做一下几个步骤,你的函数才是好函数:
首先要做的是参数的检验,如果你传入的是指针的话,用assert来检验;
然后是考虑边界问题,这种情况在数据集合中经常出现,所以,我们得判断边界,这样能更好的了解程序走的过程,写循环的时候也方便;
最后才是函数要实现的功能。

函数设计一般规则和技巧:

1、尽量少使用全局变量,因为全局变量的生命周期太长会长时间占用空间,而且容易出错。

2、参数命名要恰当,注意命名的顺序。
例如:字符串拷贝函数,str_copy,如果有两个参数,那么可以命名为str1,str2,这样简单,但是有一个缺点,就是我们很难搞清楚把水拷贝给谁,所以这里提供一个更直观的命名;dest, src,这是目标 字符串和源 字符串,这样我们就知道,是要把,src拷给dest,当然我们还可以在src前面加上const,这样保证不会更改原字符串的内容。

3、如果参数是指针且仅作为输入参数引用,那么也应该加上const,以防止该指针在函数体中被修改。

4、在函数的入口处,应该对参数进行检查,特别是指针参数,尽量使用assert宏作为入口检查,而不是用if。注意assert被包含在

char *func()
{
char str[32];
……
return str;
}
//str是局部变量,在栈内存中,函数结束的时候会被释放,所以,返回str会导致错误。
6、作为一个初学者,函数的功能要单一,不要涉及多功能函数,这样会很容易导致出错。

7、函数的参数也尽量控制在4个以下,防止出错。

8、函数名和返回值类型在语义上没有冲突。
很典型的……例如:

char c;
c=getchar();
if(EOF==c)
{

}
按照getchar名字的意思,应将类变量定义为char,但是,事实上,getchar的返回值类型却是int。。。`

9、对指针和数组进行读写操作,必须要使用sizeof进行校验对象的大小。
---------------------
作者:jhcconan614
来源:CSDN
原文:https://blog.csdn.net/jhcconan614/article/details/53573544
版权声明:本文为博主原创文章,转载请附上博文链接!

发表于 2019-4-29 08:28 | 显示全部楼层
楼主是超人
发表于 2019-4-29 08:44 | 显示全部楼层
好帖就是要顶
发表于 2019-4-29 08:26 | 显示全部楼层
顶顶多好
发表于 2019-4-29 08:51 | 显示全部楼层
难得一见的好帖
发表于 2019-4-29 08:29 | 显示全部楼层
LZ真是人才
发表于 2020-5-12 08:45 | 显示全部楼层
楼主是超人
发表于 2020-5-12 09:20 | 显示全部楼层
好帖就是要顶
发表于 2020-5-12 09:07 | 显示全部楼层
说的非常好
发表于 2020-5-12 09:29 | 显示全部楼层
不错不错
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-3-28 17:15 , Processed in 0.121783 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表