您的位置:首页 > 编程语言 > C语言/C++

C语言实现printf的基本格式输出%d,%c,%p,%s

2016-02-25 22:02 501 查看
关于printf的实现,想必看过我之前发表的文章的伙伴们已经了解了不少基本的知识。好了,接下来不多说了,直接上源码,看看一种简单的实现方式:

#include <stdio.h>
#define myfflush(out)     do {} while (0)
typedef  int  uint32_t;
//输出十进制数
static void print_Dec (uint32_t n)
{
if (n >= 10)
{
//递归调用
print_Dec(n / 10);
n %= 10;
}
putchar((char)(n + '0'));
}
//输出十六进制数
static void print_Hex(unsigned int hex)
{
int i = 8;
putchar('0');
putchar('x');
while (i--) {
unsigned char c = (hex & 0xF0000000) >> 28;
putchar(c < 0xa ? c + '0' : c - 0xa + 'a');
hex <<= 4;
}
}
//输出字符串
void print_String(const char *s)
{
while (*s) {
putchar(*s);
s++;
}
}
//输出字符
void print_char(char ch)
{
putchar(ch);
}
typedef unsigned long volatile ulv ;
typedef unsigned long ul ;
int main(void)
{
//输出10进制数
print_Dec(10);
putchar('\n');
//输出16进制数
print_Hex(0xa);
putchar('\n');
//输出字符串
print_String("hello world");
myfflush(stdout);
return 0 ;
}
运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: