
c语言编程
文章平均质量分 77
joshua_cyh
这个作者很懒,什么都没留下…
展开
-
va_list的用法与vsprintf
VA_LIST的用法( VA_LIST 是在C语言中解决变参问题的一组宏):(1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针(2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数。(如在运行VA_START(ap,v)以后,ap指向第一个可变参数在堆栈的地址。)(3)然后用V转载 2011-12-21 21:18:30 · 322 阅读 · 0 评论 -
C语言中实现参数个数不确定的函数
C语言中有一种长度不确定的参数,形如:"…",它主要用在参数个数不确定的函数中,我们最容易想到的例子是printf函数。(注意:在C++中有函数重载(overload)可以用来区别不同函数参数的调用,但它还是不能表示任意数量的函数参数。)C语言用va_start等宏来处理这些可变参数。这些宏看起来很复杂,其实原理挺简单,就是根据参数入栈的特点从最靠近第一个可变参数的固定参数开始,依次获取每个可转载 2011-12-21 21:18:20 · 3597 阅读 · 0 评论 -
va_list、va_start、va_arg、va_end的原理与使用
1、概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.定义大家先看几宏.在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义:#define _INTSIZEOF(n) ((sizeo转载 2011-12-21 21:17:54 · 394 阅读 · 0 评论