重要的宏定义

typedef char* va_list;
void va_start(va_list ap,prev_parm);
type va_arg(va_list ap,type);
void va_end(va_list ap);

  • va_list是一个字符指针,可以理解为指向当前参数的一个指针,取参必须通过这个指针进行。
  • 在调用参数表之前,定义一个va_list类型的变量,假设va_list类型变量被定义为ap
  • 然后通过使用va_start对ap进行初始化,使它指向可变参数列表中的第一个参数,其中prev_parm是可变参数的前一个参数
  • 获取参数,调用va_arg,它的第一个参数是ap,第二个参数是要获取的参数的指定类型,然后返回这个指定类型的值,并将ap的位置指向可变参数列表的下一个位置。
  • va_end用于关闭ap指针,使ap置为null。

你可能感兴趣的:(重要的宏定义)