前言: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,因养成获取完参数表后关掉指针的习惯.