C语言中可变参数函数实现原理
来源:互联网 发布:java生成随机数 编辑:程序博客网 时间:2024/05/17 01:00
斯坦福大学的《编程范式》讲过, 函数的参数是存在栈之中的, 存在栈中的变量会由高到低排列(地址)。参数是从右到左,逐一压入栈中的(栈的延伸方向是从高地址到低地址,栈底的占领着最高内存地址,先入栈的参数,其地理位置也就最高了)
因此,函数的所有参数是存储在线性连续的栈空间中的,基于这种存储结构,这样就可以从可变参数函数中必须有的第一个普通参数来寻址后续的所有可变参数的类型及其值。
自己对可变参数的一点理解:
众所周知, 内存是一块一块连续的区域, 而且函数的参数就是通过进栈而传入函数中的, 那么为什么不能圈出一片区域然后根据一个个向后递进来实现所谓的可变参数呢, 但是仍然会存在许许多多的问题, 比如说不同类型的参数长度不同, 不可能在运行时辨别,然后就是开多长也是一个问题。
重要:
千万不要看我的文章!!!!这只是我对C语言的理解, 我刚刚接触C语言不到半年的时间, 有些看法十分的误人!!!!
下面给出链接, 这才是真正的牛人, 遥遥而不可及。。。。。
牛人对其的理解,C语言中可变参数函数实现原理
0 0
- C语言中可变参数函数实现原理浅析
- C语言中可变参数函数实现原理浅析
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言中可变参数函数实现原理
- C语言可变参数函数实现原理
- C语言可变参数函数实现原理
- C语言中可变参数函数实现
- C语言中实现可变参数函数
- C语言中实现可变参数函数
- C语言实现printf函数,即参数可变函数原理
- c语言中可变参数的原理---printf()函数
- C++ switch语句后表达式的类型,vs2015试过
- Linux系统设置WiFi热点
- Weex Android SDK源码分析之Module(navigator)
- cheet 4 二叉树
- 匈牙利算法c++代码
- C语言中可变参数函数实现原理
- python3 标准库 urllib.request
- vi 编辑note(一)
- Java的HashMap和HashTable
- 表示数值的字符串
- 二维数组指针
- ARC 下属性 strong,weak,还有copy 等属性详解
- ADO.NET之省市联动
- STM32 GPIO工作方式