C与指针学习笔记——可变参数和printf函数
来源:互联网 发布:多目标粒子群算法程序 编辑:程序博客网 时间:2024/05/17 02:42
#include<stdarg.h>#include<stdio.h>int m_sum(int num,...){va_list var;int count;int sum=0;va_start(var,num);for(count=0;count<num;count++){sum+=va_arg(var,int);}va_end(var);return sum;}int main(int argc,char **argv){printf("sum1:%d",m_sum(3,5,2,2));printf("sum2:%d",m_sum(5,5,6,74,21,4));getchar();}
可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件。需要使用类型va_list和三个宏——va_start,va_arg和va_end来实现可变参数的访问。
下面是自己写的模仿printf函数:
#include<stdio.h>#include<stdarg.h>#define INT 'd'#define FLOAT 'f'void print(char *msg,...){int i=5;double f=25.2;printf("%d ",i);printf("%f \n",f);va_list var_arg;va_start(var_arg,msg);while(*msg!='\0'){if(*msg=='%'){msg++;if(*msg==INT){i=va_arg(var_arg,int);printf("%d",i);msg++;continue;}else if(*msg==FLOAT){f=va_arg(var_arg,double);printf("%f",f);msg++;continue;}else{msg--;}}printf("%c",*msg);msg++;}va_end(var_arg);}void main(){int a=115;double d=24.335;print("print int:%d %d,print float:%f %f\n",a,a+10,d,d-5);}
代码写得不好,仅起到示例作用
- C与指针学习笔记——可变参数和printf函数
- C与指针学习笔记——命令行参数和神秘函数
- 可变参数函数——printf模拟
- printf 系列函数 与 可变参数函数
- printf函数可变参数
- 可变参数与printf
- C与指针学习笔记——函数指针
- C和指针之函数之可变参数
- 可变参数函数——以printf为例子
- c笔记——可变长参数函数用法
- python学习笔记4—可变参数和关键字参数
- python学习笔记——函数可变参数处理
- PHP学习笔记——可变个数参数的函数;
- C语言学习笔记——可变参数列表
- C语言实现printf函数,即参数可变函数原理
- C语言学习笔记-----伊能---函数可变参数
- 可变参数:printf函数实现
- vsprintf, vswprintf与printf与函数的可变参数编程
- 互联网产品开发中的“快”字诀
- 支撑5亿用户、1.5亿活跃用户的Twitter最新架构详解及相关实现
- 日三省乎己
- 搭建Ubuntu12.04交叉编译服务器
- 入职前言
- C与指针学习笔记——可变参数和printf函数
- 从华为看企业高效产品的研发管理
- IOS 国际化 失败
- testng的安装配置和运行
- 如何更好的启动项目、为项目的顺利实施奠定基础
- C#using别名指令
- 分组柱状图(FusionChart)
- 位运算知识点
- kpfs install