目錄
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C 語言基礎(chǔ)入門
一.vprintf 函數(shù)和 printf 函數(shù)聲明簡介
1.printf 函數(shù)聲明
int printf(const char *format, ...);
2.vprintf 函數(shù)聲明
/*
*描述:將可變參數(shù)列表的格式化數(shù)據(jù)打印到stdout
*參數(shù):
* format 包含格式字符串的C字符串,其格式字符串與printf中的格式相同飞傀。
*
* arg 標(biāo)識使用va_start初始化的變量參數(shù)列表的值揉抵。
va_list是在<cstdarg>中定義的特殊類型论皆。
*
*返回值:
* 成功后殿遂,返回寫入的字符總數(shù)竟闪。
* 如果發(fā)生寫入錯誤爽冕,則會設(shè)置錯誤指示符(ferror)并返回負數(shù)隙赁。
* 如果在編寫寬字符時發(fā)生多字節(jié)字符編碼錯誤垦藏,則將errno設(shè)置為EILSEQ,并返回負數(shù)伞访;
*/
int vprintf ( const char * format, va_list arg );
注意:兩者傳參的區(qū)別掂骏,實際上 printf底層就是調(diào)用 vprintf
函數(shù)來將內(nèi)容輸出到控制臺的;
二.vprintf 函數(shù)和 printf 函數(shù)使用
1.vprintf
函數(shù)一般和 va_start
/ va_end
配套使用;
2.常規(guī)情況下厚掷,輸出到控制臺弟灼,多數(shù)情況下使用 printf
函數(shù)即可。當(dāng)你需要自己寫一個自定義 printf
函數(shù)時候才需要 vprintf
函數(shù)蝗肪,例如:
/******************************************************************************************/
//@Author:猿說編程
//@Blog(個人博客地址): www.codersrc.co
//@File:C語言教程 - C語言 vprintf 函數(shù)和 printf 函數(shù)區(qū)別
//@Time:2021/07/16 08:00
//@Motto:不積跬步無以至千里袜爪,不積小流無以成江海蠕趁,程序人生的精彩需要堅持不懈地積累薛闪!
/******************************************************************************************/
#include "stdafx.h"
#include <stdio.h>
#include <stdarg.h>
void myPtintf(char *format, ...)
{
va_list args;
va_start(args, format);
vprintf(format, args);
va_end(args);
}
int main()
{
myPtintf("自定義printf函數(shù):hello world\n");
myPtintf("自定義printf函數(shù):%s %s\n", "hello world", "C語言教程-猿說編程");
printf("系統(tǒng)printf函數(shù):hello world\n");
printf("系統(tǒng)printf函數(shù):%s %s\n", "hello world", "C語言教程-猿說編程");
return(0);
}
/*
輸出:
自定義printf函數(shù):hello world
自定義printf函數(shù):hello world C語言教程-猿說編程
系統(tǒng)printf函數(shù):hello world
系統(tǒng)printf函數(shù):hello world C語言教程-猿說編程
*/
實際上 printf
底層就是調(diào)用 vprintf
函數(shù)來將內(nèi)容輸出到控制臺的;
三.猜你喜歡
- C 語言 數(shù)組下標(biāo)越界和內(nèi)存溢出區(qū)別
- C 語言 使用指針遍歷數(shù)組
- C 語言 指針和數(shù)組區(qū)別
- C 語言 指針數(shù)組和數(shù)組指針區(qū)別
- C 語言 野指針
- C 語言 函數(shù)值傳遞和址傳遞
- C 語言 函數(shù)不定長參數(shù)
- C 語言 函數(shù)指針
- C 語言 指針函數(shù)
- C 語言 回調(diào)函數(shù) callback
- C 語言 #pragma once
- C 語言 #include <> 與 #include “” 區(qū)別
- C 語言 const 修飾函數(shù)參數(shù)
- C 語言 const 和 define 區(qū)別
- C 語言 #運算符
- C 語言 ##運算符
- C 語言 __VA_ARGS__
- C 語言 ##__VA_ARGS__
- C 語言 函數(shù)不定長參數(shù) ##__VA_ARGS__經(jīng)典案例
- C 語言 va_start 宏
- C 語言 va_end 宏
- C 語言 va_arg 宏
- C 語言 vprintf 函數(shù)
- C 語言 vprintf 函數(shù)和 printf 函數(shù)區(qū)別
未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? C 語言 vprintf 函數(shù)和 printf 函數(shù)區(qū)別
本文由博客 - 猿說編程 猿說編程 發(fā)布!