汇编网首页登录博客注册
answerooo的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  

[2009-02-06 19:17] 第二课 可变参数函数原理和printf的实现

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

void myPrintf(char *former, ...)
{

        char *p;
        char cVaile;
        int intVaile;
        char * cpVaile;
        va_list vp;

        va_start(vp, former);
        
        for(p = former; *p; p++)
        {
                if(*p != '%')
                {
                        putchar(*p);
                        continue;
                }

                p++;

                if(*p == 'c')
                {
                        cVaile = va_arg(vp, char);
                        putchar(cVaile);
                }
                else if(*p == 'd')
                {
                        intVaile = va_arg(vp, int);
                        printf("%d", intVaile);
                }
                else if(*p == 's')
                {
                        cpVaile = va_arg(vp, char *);
                        printf("%s", cpVaile);
                }
                else
                {
                        putchar(*p);
                }
        }
        
        va_end(vp);
}
评论次数(0)  |  浏览次数(922)  |  类型(默认类型) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码