天天看點

C語言 vprintf 函數 - C語言零基礎入門教程

目錄

  • 一.vprintf 函數和 printf 函數聲明簡介
    • 1.printf 函數聲明
    • 2.vprintf 函數聲明
  • 二.vprintf 函數和 printf 函數使用
  • 三.猜你喜歡
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門

int printf(const char *format, ...);
           

/*
*描述:将可變參數清單的格式化資料列印到stdout
*參數:
*   format  包含格式字元串的C字元串,其格式字元串與printf中的格式相同。
*
*   arg  辨別使用va_start初始化的變量參數清單的值。
         va_list是在<cstdarg>中定義的特殊類型。
*
*傳回值:
*   成功後,傳回寫入的字元總數。
*   如果發生寫入錯誤,則會設定錯誤訓示符(ferror)并傳回負數。
*   如果在編寫寬字元時發生多位元組字元編碼錯誤,則将errno設定為EILSEQ,并傳回負數;
*/
int vprintf ( const char * format, va_list arg );
           

注意:兩者傳參的差別,實際上 printf 底層就是調用 vprintf 函數來将内容輸出到控制台的;

1.

vprintf

函數一般和

va_start

/

va_end

配套使用;

2.正常情況下,輸出到控制台,多數情況下使用

printf

函數即可。當你需要自己寫一個自定義

printf

函數時候才需要

vprintf

函數,例如:

/******************************************************************************************/
//@Author:猿說程式設計
//@Blog(個人部落格位址): www.codersrc.co
//@File:C語言教程 - C語言 vprintf 函數和 printf 函數差別
//@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函數:hello world\n");
    myPtintf("自定義printf函數:%s %s\n", "hello world", "C語言教程-猿說程式設計");
    printf("系統printf函數:hello world\n");
    printf("系統printf函數:%s %s\n", "hello world", "C語言教程-猿說程式設計");
    return(0);
}

/*
輸出:
自定義printf函數:hello world
自定義printf函數:hello world C語言教程-猿說程式設計
系統printf函數:hello world
系統printf函數:hello world C語言教程-猿說程式設計
*/
           

實際上

printf

底層就是調用

vprintf

函數來将内容輸出到控制台的;

  1. C 語言 數組下标越界和記憶體溢出差別
  2. C 語言 使用指針周遊數組
  3. C 語言 指針和數組差別
  4. C 語言 指針數組和數組指針差別
  5. C 語言 野指針
  6. C 語言 函數值傳遞和址傳遞
  7. C 語言 函數不定長參數
  8. C 語言 函數指針
  9. C 語言 指針函數
  10. C 語言 回調函數 callback
  11. C 語言 #pragma once
  12. C 語言 #include <> 與 #include “” 差別
  13. C 語言 const 修飾函數參數
  14. C 語言 const 和 define 差別
  15. C 語言 #運算符
  16. C 語言 ##運算符
  17. C 語言 __VA_ARGS__
  18. C 語言 ##__VA_ARGS__
  19. C 語言 函數不定長參數 ##__VA_ARGS__經典案例
  20. C 語言 va_start 宏
  21. C 語言 va_end 宏
  22. C 語言 va_arg 宏
  23. C 語言 vprintf 函數
  24. C 語言 vprintf 函數和 printf 函數差別

未經允許不得轉載:猿說程式設計 » C 語言 vprintf 函數和 printf 函數差別

本文由部落格 - 猿說程式設計 猿說程式設計 釋出!

繼續閱讀