在嵌入式開發中,常常會通過串列埠列印一些資訊到pc終端,這就需要實現自己的printf函式,下面介紹列印函式print的實現。
print.h
#ifndef __print_h_
#define __print_h_
void print(char* fmt, ...);
void printch(char ch);
void printdec(int dec);
void printflt(double flt);
void printbin(int bin);
void printhex(int hex);
void printstr(char* str);
#define console_print(ch) putchar(ch)
#endif /*#ifndef __print_h_*/
上面print函式為全功能的列印函式,可以實現類似printf的功能,printch實現單個字元的列印、printdec實現十進位制格式數字的列印,printflt實現浮點數的列印,printbin實現二進位制格式數字的列印,printhex實現十六進製制格式數字的列印,printstr實現字串的列印,console_print函式是串列埠單字元列印函式的巨集定義,這裡暫時用pc終端單字元列印函式putchar代替。在實際嵌入式環境下,替換成串列埠單字元列印函式即可。
print.c
#include #include #include "print.h"
int main(void)
void print(char* fmt, ...)
pfmt++;
} else
} va_end(vp);
} void printch(char ch)
void printdec(int dec)
printdec(dec/10);
printch( (char)(dec%10 + '0'));
} void printflt(double flt)
void printstr(char* str)
} void printbin(int bin)
printbin(bin/2);
printch( (char)(bin%2 + '0'));
} void printhex(int hex)
printhex(hex/16);
if(hex < 10)
else
}
編譯執行結果如下:
print: c
print: 1234567
print: 1234567.123456
print: string test
print: 0b1001000110100010111111111
print: 0xabcdef
print: %
如上所示,print函式實現了類似printf的功能。
Print的新用法
相信剛學python最先接觸的是print。可是print也有一些好玩的用法。先來試試普通用法 flush這個引數就更有意思了,print 函式會把內容放到記憶體中,不一定及時重新整理顯示到螢幕中。使用flush true之後,會在print結束之後,不管你有沒有達到條件,立即將記憶體中的東西顯示到...
自己實現的TransactionManager
b 背景 b color red 目前有乙個系統,系統已經寫好了,但是要不停的新增新的功能,用struts,業務邏輯寫在action中,以後可能增加一層service。業務處理和持久層沒有使用任何框架,目前是用dao擔任業務處理加持久層雙重操作,但是有些業務處理很複雜,固設計了乙個事務處理框架,大家...
實現自己的Promise polyfill
功能清單 promise.prototype.then promise.prototype.catch promise.reject promise.resolve promise.all promise.race promise.prototype.finally 參考 prmoises a 規範...