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 · 294 阅读 · 0 评论 -
C语言中实现参数个数不确定的函数
C语言中有一种长度不确定的参数,形如:"…",它主要用在参数个数不确定的函数中,我们最容易想到的例子是printf函数。(注意:在C++中有函数重载(overload)可以用来区别不同函数参数的调用,但它还是不能表示任意数量的函数参数。) C语言用va_start等宏来处理这些可变参数。这些宏看起来很复杂,其实原理挺简单,就是根据参数入栈的特点从最靠近第一个可变参数的固定参数开始,依次获取每个可转载 2011-12-21 21:18:20 · 3410 阅读 · 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 · 326 阅读 · 0 评论