模拟实现printf函数,可以在屏幕上输出my_printf("sccccc\n","hello",‘w‘,‘o‘,‘r‘,‘l‘,‘d‘);#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>
intmy_printf(char*word,...)
{
va_listarg;
va_start(arg,word);
while(*word)
{
switch(*word)..
分类:
其他好文 时间:
2015-11-29 06:55:36
阅读次数:
161
可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件中,是标准库一部分,这个头文件声明一个类型va_list和三个宏va_start,va_arg和va_end声明va_list类型变量arg,用于访问参数列表未确定部分,用va_start来初始化,它的第一个参数是va_list的变量名,第二个是省略号前..
分类:
其他好文 时间:
2015-11-26 01:28:14
阅读次数:
159
#include<stdio.h>
#include<stdarg.h>
//va_start(arg,format),初始化参数指针arg,将函数参数format右边第一个参数地址赋值给arg
//format必须是一个参数的指针,所以,此种类型函数至少要有一个普通的参数,
//从而提供给va_start,这样va_start才能找到可变参..
分类:
其他好文 时间:
2015-11-22 06:49:22
阅读次数:
194
先简单总结一下基本的用法: 1 void sum(int n, ...) 2 { 3 va_list arg_ptr = NULL; //申请一个指针 4 5 va_start(arg_ptr, n); //设置指针指向 6 7 va_arg(arg_ptr, i...
分类:
编程语言 时间:
2015-11-22 00:07:24
阅读次数:
227
控制台分类1.菜单型控制台,通过选择菜单来执行命令2.解析型控制台,通过输入命令来执行命令printf()、scanf()函数移植1.函数采用变参2.打印信息到串口3.关键在于把变参转换成字符串,相关函数需要从Linux内核或标准C库中移植va_list args;va_start(args, fm...
分类:
其他好文 时间:
2015-11-16 22:29:32
阅读次数:
155
#define_CRT_SECURE_NO_WARNINGS1
#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>
intmy_printf(constchar*fmt,...)
{
constchar*s;
charc;
va_listap;//参数列表
va_start(ap,fmt);//取的fmt指针给ap
while(*fmt)
{
/*if(*fmt!=‘s‘||*fm..
分类:
编程语言 时间:
2015-11-11 22:21:12
阅读次数:
346
模拟实现printf功能输出如下形式,‘d‘输出整形,‘c‘输出字符型,‘s‘输出字符串,其他输出自身形式my_printf("dc\ts\ndc\ndc\ts!",1,‘b‘,"zhangweina",2,‘i‘,3,‘t‘,"welcometoyou");可变参数列表的一些小知识://宏stdard.h//va_list声明一个类型//va_start第一个参数为va_list..
分类:
编程语言 时间:
2015-11-10 19:33:33
阅读次数:
270
函数原型中一般情况下参数的数目是固定的,但是如果想在不同的时候接收不定数目的参数时该怎么办呢?c语言提供了可变参数列表来实现。可变参数列表是通过宏来实现的,这些宏定义在stdarg.h的头文件中。头文件中声明了一个va_list类型和va_start、va_arg、va_end三个宏。我们使..
分类:
编程语言 时间:
2015-11-09 01:48:17
阅读次数:
205
//
//?摘自Masonry
//?文件MASUtilities.h
//?
//?参数列表
static?inline?id?_MASBoxValue(const?char?*type,?...)?{
????va_list?v;
????va_start(v,?type);
????id?obj?=?nil;
?...
分类:
其他好文 时间:
2015-11-03 21:23:10
阅读次数:
277
本文主要介绍va_start和va_end的使用及原理。 在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。 介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理:1.在C中,当我们无法列出传递函数的所有实...
分类:
其他好文 时间:
2015-08-31 15:00:24
阅读次数:
154