vsnprintf和snprintf(vsnprintf就是為了支持va_list,實現對於sprint功能封裝而做的)


vsnprintf和snprintf是C語言printf家族函數的成員,相關函數列表如下:

#include <stdio.h> int printf(const char *format, ...); //輸出到標准輸出 int fprintf(FILE *stream, const char *format, ...); //輸出到文件 int sprintf(char *str, const char *format, ...); //輸出到字符串str中 int snprintf(char *str, size_t size, const char *format, ...); //按size大小輸出到字符串str中 以下函數功能與上面的一一對應相同,只是在函數調用時,把上面的...對應的一個個變量用va_list調用所替代。在函數調用前ap要通過va_start()宏來動態獲取。 #include <stdarg.h> int vprintf(const char *format, va_list ap); int vfprintf(FILE *stream, const char *format, va_list ap); int vsprintf(char *str, const char *format, va_list ap); int vsnprintf(char *str, size_t size, const char *format, va_list ap);


實際上對sprintf封裝時還是盡量用宏定義了,這樣的好處是編譯器可以在預處理后明確了解到你的意圖,對format的格式進行檢查和提示。可避免很多格式化問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM