20161215C语言基础14_函数

本文深入探讨了C语言中的函数概念,包括函数的作用、如何通过函数实现代码复用以提高开发效率,以及如何正确使用参数传递来修改外部变量等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言:

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

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

函数:

  1:函数 名称

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

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

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

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


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

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


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










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值