函数参数
来源:互联网 发布:java spring rpc 编辑:程序博客网 时间:2024/09/21 09:26
函数参数在本质上与局部变量相同在栈上分配空间
函数参数的初始值是函数调用时的实参值
函数参数的求值顺序依赖于编译器的实现
程序中的顺序点
程序中存在一定的顺序点
顺序点指的是执行过程中修改变量值得最晚时刻
在程序到达顺序点的时候,之前所做的一切操作必须完成
C语言中的顺序点
每个完整表达式结束时,即分号处
&&,||,?:,以及逗号表达式的每个参数计算之后
函数调用时所有实参求值完成后(进入函数体之前)
参数入栈顺序
调用约定
当函数调用发生时
-参数会传递给被调用的函数
-而返回值会被返回给函数调用者
调用约定描述参数如何传递到栈中以及栈的维护方式
-参数传递顺序
-调用栈清理
调用约定是预定义的可理解为调用协议
调用约定通常用于库调用和库开发的时候
-从右到左依次入栈:__stdcall,__cdecl,__thiscall
-从左到右依次入栈:__pascal,__fastcall
可变参数
C语言中可以定义参数可变的函数
参数可变函数的实现依赖于stdarg.h
-va_list ——参数集合
-va_arg——取具体参数值
-va_start——标识参数访问的开始
-va_end——标识参数访问的结束
可变参数的限制
可变参数必须从头到尾按照顺序逐个访问,无法直接访问中间的参数值
参数列表中至少要存在一个确定的命名参数
可变参数函数无法确定实际存在的参数的数量
可变参数函数无法确定参数的实际类型
阅读全文
0 0
- 函数参数和参数
- 函数参数
- 函数参数
- 函数参数
- 函数参数
- 函数参数
- 函数参数
- 函数参数
- 函数参数
- 函数参数
- 函数参数
- 函数参数
- 函数参数
- 函数参数
- 函数参数和Catch参数
- 函数、默认参数、关键字参数
- 函数参数与函数作为参数
- 不定参数函数调用不定参数函数
- 学习node 需要额外知道的几个模块
- I
- 日期时间去掉日期后面的时间
- 程序员的17种状态,你有过几种?
- firewalld&iptables
- 函数参数
- 同余运算及其基本性质
- Spark Sort Based Shuffle内存分析
- 使用opencv的contours,结果发现vector原因不明的越界
- 史上最全的maven pom.xml文件教程详解
- 反转单向链表(每日一道算法题)
- 1.环境搭建
- 测试管理第一章如何组建团队
- sso单点登录