20161215C语言基础14_函数

来源:互联网 发布:htct328t软件下载 编辑:程序博客网 时间:2024/06/07 17:19

C语言:

  1:过程语言,把执行过程分解成一个一个的函数,这样方便管理

  2:方便我们多次调用,节约工程师的生命(不用一个函数写很多遍)!节约内存。

函数:

  1:函数 名称

    C语言中必须唯一,不可以重复。

  2:参数可以使多种多样的,可以自己定义,函数中封装的是算法,当前算法需要用那些数据就可以把这些参数传进去,在算法中就可以取得到这些值,进行一步一步地计算。

  3:返回值必须返回指定类型的数据!!!函数的参数是怎么传到函数内部去的,每个函数都可以认为是一个单独的个体,认为每个函数都拥有一个独立的栈,叫栈帧!一个函数无法方位其他函数的栈帧!一个新的函数执行完成之后(碰到return),函数就会将里面的栈(栈帧)清空,如果再次调用这个函数,就会再次申请栈帧,这样一来,函数里面的局部变量就会失效。

        函数是通过栈来传递参数的,栈之间的地址是相通的,传递的并非变量本身,


    他只是将这个需要传递的值放到eax里面,然后push了一个新的地址,仅仅值是一样的,里面要改变也只是改变的假变量。如果函数需要的并不是返回值,而是真实的需要改变传进来的变量,就需要传递指针!

    函数的传递参数应该是指针,*p,调用的时候应该输入地址!这样在反汇编下,就会直接用lea取地址,把地址传递给了下一个函数。


这里第二个push的就是参数的地址值。被调用函数里面操作也要加上*。否则仅仅操作的是地址,而没有改变值。加*就是解出来,对内存进行操作。










1 0
原创粉丝点击