C語言實現printf的基本格式輸出%d,%c,%p,%s
阿新 • • 發佈:2019-02-18
關於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 ; }