C言語はprintfの基本フォーマット出力%d,%c,%p,%sを実現する
1112 ワード
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('
');
// 16
print_Hex(0xa);
putchar('
');
//
print_String("hello world");
myfflush(stdout);
return 0 ;
}
実行結果: