函数设计的一般原则和技巧

原则

1.原则上尽量少使用全局变量,因为全局变量的生命周期太长,容易出错, 也会长时间占用空间.各个源文件负责本身文件的全局变量,同时提供一对对外函数,方 便其它函数使用该函数来访问变量。比如:niSet_ValueName(⋯);niGet_ValueName(⋯); 不要直接读写全局变量,尤其是在多线程编程时,必须使用这种方式,并且对读写操作 加锁。
2.参数命名要恰当,顺序要合理。
3.如果参数是指针,且仅作输入参数用,则应在类型前加const,以防止该 指针在函数体内被意外修改。
4.不要省略返回值的类型,如果函数没有返回值,那么应声明为void 类型。 如果没有返回值,编译器则默认为函数的返回值是int类型的。
5.在函数体的“入口处”,对参数的有效性进行检查。尤其是指针参数,尽 量使用assert宏做入口校验,而不使用if语句校验。(关于此问题讨论,详见指针与数组那章。)
6.return 语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结 束时被自动销毁
7.函数的功能要单一,不要设计多用途的函数。
8.函数体的规模要小

建议

建议1:相同的输入应当产生相同的输出。尽量避免函数带有“记忆”功能。 带有“记忆”功能的函数,其行为可能是不可预测的,因为它的行为可能取决于某种 “记忆状态“。这样的函数既不易理解又不利于测试和维护。在C 语言中,函数的static 局部变量是函数的“记忆”存储器。建议尽量少用static 局部变量,除非必需。
建议2:避免函数有太多的参数,参数个数尽量控制在4个或4个以内。如果参

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值