• 这样看C函数才对


    什么是函数?从定义来看,函数就是一段可以重复使用的代码块,比如下面这样
    void hanshu()
    {
    int a = 0;
    int b = 3;
    }
    这时候就应该有人要跳出来了,这是什么**!确实,作为一个强烈反对屎山代码存在的编程者来说,一个好的函数应该是一个有着合理命名,并且功能紧凑的功能块,而不仅只是一份可以重复调用执行的代码。像下面这个一眼能看出其功能和实现逻辑才算是一个好函数。
    int add(int num0, int num1)
    {
    return (num0 + num1);
    }
    有了以上的认识还不够,我们应该更加剖根究底的看一下。总的来说,计算机是一个可以输入输出的系统,每个具体的项目产品也是,函数作为这座大山的基本组成单位,自然也是个系统。函数既然是一个系统,则就应该有一个系统视角的认识和理解。
     
    传统意义来讲,一个函数的输入,就是它的形参,一个函数的输出就是它的返回值,对上面Add()函数来说,num0num1就是输入,return (num0 + num1)则是输出。
     
    因为语言功能的限制,使得用以上规则写出的函数有些死板,不能灵活应对多变的编程需求,比如返回值无法直接返回一个数组,想要通过返回值返回一个数组往往需要有堆区空间的配合。

    换个视角看函数输入输出


    虽然用传统的方法来使用函数更符合每个人的编程习惯,不过有时候我们需要打破这种规范。函数作为一个有输入输出的系统,我们也可以用形参或者全局变量当作为函数的输出。
    // 用形参作为函数输出
    void add(int num0, int num1, int &ret)
    {
    *ret = num0 + num1;
    }
    // 用全局变量作为函数输出
    int ret;
    void add(int num0, int num1)
    {
    ret =  (num0 + num1);
    }
    同理,对于函数的输入,也不必拘泥于形参的输入,全局变量也应该算入。
     
    虽然以上的方式写出的函数看起来有些别扭,但是在一些情景中却是很管用的,尤其是将形参作为函数输出的方式在 Linux 的系统调用中常常能看见其影子。对于函数的灵活使用能让我们应对各种灵活的场景,也能进一步提高对于语言的理解。
  • 相关阅读:
    微信小程序 在bindscroll事件中监听scroll-view滚动到底
    低代码平台中的分布式 RPC 框架 (约 3000 行代码)
    MySQL数据库安装配置保姆级教程(以8.0.29为例)有手就行
    linux 学习笔记
    数据库分库分表<====>分布式事务
    Sentinel-微服务保护
    星宿UI V2.1 开源wordpress资源下载小程序,流量主激励视频广告
    [附源码]计算机毕业设计JAVA大学生社团管理系统
    基于Matlab实现连续模型求解方法
    高性能系统架构设计之:多级缓存
  • 原文地址:https://www.cnblogs.com/cheng-liu/p/17532759.html