博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言:传递可变参数
阅读量:5728 次
发布时间:2019-06-18

本文共 496 字,大约阅读时间需要 1 分钟。

void g(...); void f(...){g(...);} f("%s %d","hello",2011); //需求:函数g,f都支持可变参数,外部调用函数f,函数f把自己的参数传递给g

 

#define FUNC(format,...) g(format,__VA_ARGS__) //方案1:将f实现为一个宏(但是这种方法不够灵活)

 

void g(char ** format,va_list *args) {
va_start(*args, *format); } void f(char *format, ...) {
va_list args; g(&format,&args); } f("%s %d","hello",2011); /* 方案2 f必须将整&format传递给g,因为g拿到args不是为了指向自己的参数列表,而是为了指向f的参数列表,这样就等于f把自己的参数传递给g */

转载于:https://www.cnblogs.com/code-style/archive/2012/03/14/2397031.html

你可能感兴趣的文章
Java中的权限修饰符
查看>>
POJ 2676 Sudoku
查看>>
qtcpsocket send and recieve image
查看>>
iOS常用的封装方法
查看>>
Android之androidmainfest.xml配置文件详解
查看>>
python下划线变量的含义
查看>>
点滴积累【other】---.net程序员面试题总结
查看>>
HDU 5289 Assignment
查看>>
进程、线程、协程的基本解析(python代码)
查看>>
python 多进程
查看>>
Centos7从3.10升级内核到4.9后无法启动解决办法:mpt[23]sas驱动问题
查看>>
Free中的buffer和cache理解
查看>>
SQL Server中索引的概念,原理以及其他
查看>>
Cocos2d-x Physics 3 - 掉落的头像
查看>>
四种拦截方式
查看>>
邮件协议概述
查看>>
java Https工具类
查看>>
学期总结(一)------文献挖掘
查看>>
jqGrid细节备注—jqGrid中自定义格式,URL格式
查看>>
LeetCode - Serialize and Deserialize Binary Tree
查看>>