第四章 C语言函数调用以及C语言机器运行模型

学习要点:
4.1 C语言的函数;
4.2: C语言的函数调用;
4.3: C语言命名规范;
4.4: C语言计算机运行模型;
4.5: C语言示例代码运行详情剖析;


  4.1 C语言的函数
    1:函数是完成特定功能的代码块, 用户给出相应的输入,经过函数模块后得到返回值。
   2: C语言程序设计里面,函数名称要能藐视这个函数的名称,函数的参数要能描述这个参数的作用;
    好的代码不需要注释,因为函数以及参数的命名足以说明一切,例如void setPostion(float x, float y),这个还需要注释么?
   3: 单个的C语言函数的代码量不宜过长,维持在100行以内;
   4: 一个.c文件我们会称为一个模块或某个模块的一个部分;
    如果函数定义在.c内部,我们称为内部函数,如果定义在某个模块的外部,我们称该函数为此模块的外部函数;
   5: 注意,一般.c文件的命名要与模块的功能想似,.h文件的命名一般和.c文件使用同样的名称;

 

  4.2: C语言的函数调用

    1: 使用变量保存返回值:
    变量 = 函数名称(参数1, 参数2, ...)
    变量的类型一定要和返回值的类型是一致的;

    2: 无返回值或不管返回值:
    函数名称(参数1, 参数2, ...)
    在传参数的时候,我们传的参数的个数,以及每个参数的类型都要与函数定义的的参数类型相当;

 

  4.3: C语言命名规范
    1: 匈牙利命名法: -- windows代码常用的规范
    主要特点:
    a: 函数名称单词与单词之间大写例如 SetPosition;
    b: 变量名称加上类型的说明,例如 指针 pData等;
    具体参见匈牙利命名规范;

    2: 驼峰命令规范: --在java与游戏编码中很流行
     命名有单词组成,第一个单词的第一个字母小写,后面每个单词都大写,cocos 就使用这样的编码规范,java语言也是一样的;例如 setPosistion, setName, getType, fullPath等等;

    3: linux命名规范: --在linux gnu的C/C++语言中广泛使用。
     特点是函数或变量名称的单词之间使用下划线,例如:
      set_postion(); full_path, 等

    4:命名规范是项目组规定的,统一就好,每家公司有每家公司的命名规范,比如华为,百度,阿里, 腾讯都有内部的命名规范;
      a.要英文,不要拼音。

  4.4: C语言计算机运行模型
    1: 我们现在学习了,函数,函数调用,表达式,局部变量,函数返回。对于程序代码,操作系统专门在内存里开一个区域来存放代码指令,所以这个段内存,我们叫做代码段, CPU根据一个指令

      指针来取当前指令,执行完后,指令指针移动到下一条指令(顺序执行),或跳转到指定的指令(条件,循环)。

    a: 每个函数是一个独立的代码片段,在代码段中;
    b: 有一个指令指针,来决定当前CPU执行的指令;
    如图

      

 

    2:函数运行时的参数以及局部变量的内存分配是放在栈上的,操作系统也将内存开一个段出来做运行时栈的使用,

      栈有一个栈顶指针, 来表示现在栈上的最后一个元素, 定义一个局部变量或参数,那么将栈顶指针都会往下移动,分配出变量所需要的内存;如图:

      

 

    3: 调用函数,将指令指针移动到被调用的函数代码段;
    4: 函数返回,将返回值保存到一个寄存器里面,然后将指令指针拨回调用函数的下一个指令;
    5: 以后会学习动态内存分配,全局变量等,我们再扩充模型;

 


  4.5: C语言示例代码运行详情剖析

    1: 代码如下:
    int sum(int a, int b) {
    int r = a+b;
    return r;
    }
    int main(int argc, char** argv) {
    int a = 3;
    int b = 4;

    int c = sum(a, b);
    return 0;
     }
https://ke.qq.com/webcourse/index.html#course_id=108536&term_id=100115490&taid=354888852809720&vid=s1407r1ykpu

posted on 2017-12-25 22:07  梁锦杰  阅读(867)  评论(0编辑  收藏  举报

导航

欢迎进入我的博客!