当前位置: 首页 > news >正文

apue读书笔记【一】:处理可变参数(1) va_list 、va_arg、 va_start、 va_end

   以前还不知道c语言可以处理可变参数,所以查了下资料学习了一下。现在把它记下来:
c语言用宏实现的处理可变参数,主要涉及的函数(实际上不是函数,但使用时可当作函数)有:
valist 可变参数列表
va_arg 取得一个参数
va_start 初始化
va_end //将参数复位。 
demo如下:
#include <stdio.h>#include <stdarg.h>
int add(int n,...);int main(){printf("%d\n",add(4,1,2,3,4)); /* 计算 1 + 2 + 3 + 4,第一个4,是4个数的意思 */   printf("%d\n",add(3,1,2,3)); /* 计算 1 + 2 + 3 ,第一个3,是3个数的意思 */   return 0;
}int add(int n,...){int i,sum,tmp;va_list arg;  //定义 va_list 类型变量 argva_start(arg,n); //arg初始化,n 是最后一个可见的参数名字for(sum=i=0;i<n;++i){tmp=va_arg(arg,int);//每一次获得一个整数,第二个类型,就是获取数的类型sum+=tmp;}va_end(arg);//将arg复位return sum;}



http://www.xdnf.cn/news/850231.html

相关文章:

  • 使用smartupload.jar实现文件上传下载
  • Windows Blue十一大新功能汇总 改良Win8
  • mysql转换double_MySQL 字符串 转 int/double CAST与CONVERT 函数的用法
  • 编程语言和翻译工具
  • 怎样修复安装linux系统,linux系统安装图解教程及卸载修复
  • 数据库常用查询
  • unity脚本中的camera相关代码
  • OCX控件数字签名图文教程(个人总结)
  • 腾讯云轻量应用服务器如何搭建自己的CS GO游戏服务器?
  • WiMAX技术到底是什么? 究竟何谓WiMAX?
  • 运维之思科篇 -----1.VLAN 、 Trunk 、 以太通道及DHCP
  • 15个Google面试题以及答案
  • 快速上手的22 个电子电路项目
  • 如何使blackberry与outlook进行数据同步方法步骤
  • dos盘启动计算机,最新万能 DOS 启动盘制作全攻略(软盘+光盘+U盘+硬盘+NTFS+应急实用工具)...
  • 网页游戏常见外挂原理及防御
  • ExtJS快速入门学习指南
  • 开源魔兽服务端代码托管地址大全
  • IBM朱近之:服务助云计算在中国落地
  • 攻入网站后台的方法
  • [转转]数独网址
  • 8年程序员年初被迫毕业,前后面试30家公司,如今终于上岸
  • 最最喜欢的韩庚……这个资料-----顶了~/(≧▽≦)/~!!!
  • PE经典DIY案例1:全解开方案让量产PE也能
  • Website
  • 论坛聊天日常用语
  • 关于stage的讨论
  • 网络安全(黑客)专业术语
  • jdk 1.5 下载链接地址
  • 读书笔记-我所理解的生活