开发可变长参数的方法。

来源:互联网 发布:tokidoki淘宝 编辑:程序博客网 时间:2024/05/20 00:52

前言:va-list是一个字符指针,可以理解为指向当前参数的一个指针,取参应通过这个指针进行。

Typedef  char *va-list;

Step1:在调用参数表之前,应该定义一个va-list类型的变量,以供后用(假设这个va-list类型变量被定义为ap;)。

Step2:然后对ap进行初始化,让他指向可变参数表中的第一个参数,这是通过va-start来实现的,这个函数的第一个参数是ap本身,第二个参数是在变参表前面紧挨着的一个变量(格式符%d);

Step3:然后获取参数,调用va-arg。他的第一个参数是ap,第二个参数是要获取的参数的指定类型(例如int),并返回这个指定类型的值,同时把ap的位置指向变参表的下一个变量位置;

Step4:在获取完所有的参数之后,我们又要把这个ap指针关掉,以免发生危险,方法是调用va-end,它是将输入的参数ap置为null,因养成获取完参数表后关掉指针的习惯.
0 0