C 语言库宏 - va_end()

返回上一级

C 语言标准库 <stdarg.h> 宏 void va_end(va_list ap) 允许使用了 va_start 宏的带有可变参数的函数返回。 如果在从函数返回之前没有调用 va_end ,则结果为未定义

头文件

#include <stdarg.h>

宏声明

下面是 va_end() 宏的声明

void va_end(va_list ap)

参数

  • ap:这是之前由同一函数中的 va_start 初始化的 va_list 对象

返回值

范例

下面的范例演示了 va_end() 宏的用法

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 *
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

#include <stdarg.h>
#include <stdio.h>

int mul(int, ...);

int main()
{
   printf("15 + 12 + 32 = %d\n",  mul(3,15, 12, 32) );

   return 0;
}

int mul(int num_args, ...)
{
   int val = 1;
   va_list ap;
   int tmp;
   int i;

   va_start(ap, num_args);
   for(i = 0; i < num_args; i++) 
   {
      tmp = (int)va_arg(ap, int);
      printf("argument %d: %d\n",i,tmp);
      val += tmp;
   }
   va_end(ap);

   return val;
}

编译运行范例,输出结果如下

$ gcc main.c && ./a.out
argument 0: 15
argument 1: 12
argument 2: 32
15 + 12 + 32 = 60

返回上一级

C 语言标准库

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.