<b>C++函数的可变参数详谈</b>[VC/C++编程]
本文“<b>C++函数的可变参数详谈</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
可变参数的英文表示为:variable argument.
它在函数的定义时,用三个点号'.'表示,用逗号与别的参数脱离.
可变参数的特点:不像固定参数那样一一对应,也不像固定参数有固定的参数范例和参数名称;可变参数中个数不
定但是传入的是一个参数也可以是多个;可变参数中的每个参数的范例可以差别,也可以相同;可变参数的每个参数并没有
实际的名称与之相对应.
由此可见,可变参数的情势非常安闲而富有弹生.因些,它给那些天才程序员有更大地想象和施展空间.
但是,更多地安闲,一样也加大操作上的难度.
以下就对可变参数的几个方面作一定的介绍.
1)可变参数的存储情势.
大家都知道,普通函数的形参属于部分变量.而部分变量就是存储在内存的栈区(所谓的栈区:由编译器自动分配释放,
存放函数的参数值,部分变量的值等.其操作方法近似于数据构造中的栈.).可变参数也是存储在内存栈区.
在对函数的形参存储的时侯,编译器是从函数的形参的右边到左边一一地压栈,
这样保证了栈顶是函数的形参的第一个参数(从左到右数).而80x86平台下的内存分配次序是从高地址内存到低地址内存.
因此,函数的形参在内存的存储情势以下图(以fun(int var1,int var2,...,int var3,int var4)为例):
栈区:
|栈顶 低地址
|第一个固定参数var1
|可变参数前的第一个固定参数var2
|可变参数的第一个参数
|...
|可变参数的最后一个参数
|函数的倒数第二个固定参数var3
|函数的最后一个固定参数var4
|...
|函数的返回地址
|...
|栈底 高地址
以上是“<b>C++函数的可变参数详谈</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |