C語言之利用可變引數列表實現簡易的printf

2021-08-14 23:35:46 字數 873 閱讀 4601

在最初接觸c語言的時候就接觸到 printf( ) 這個函式,當時並沒有對此留心與研究,也沒有發現這個函式跟其他普通函式存在區別,普通函式的引數在函式定義的時候就確定了,而 printf ( ) 函式的引數列表在呼叫時可以變化。所以再學習與了解可變引數列表以後,便利用可變引數列表實現了乙個簡易的 printf( ) 。

其**如下:

#define  _crt_secure_no_warnings 1

#include

#include

#include

void printf_int(int n)//看似列印的是數字, 其實是乙個個字元

putchar((n % 10) + '0');//利用 '0' 加上數字所代表的字元代替想要列印的數字。

}int my_printf(const

char *format, ...)//printf函式的返回值其實是在螢幕上所列印東西的個數,所以返回值是 int。

break;

case

'c'://%c,即為字元型別

break;

case

's'://%s,字串

執行結果顯示與printf的一致,簡易的 printf( ) 函式就此實現,由於是簡易的實現,所以僅僅只對 %d、%c、%s 進行了實現。

C語言可變引數列表

c語言中類似於printf這種型別的函式,在呼叫它們時我們傳入的引數的型別和數量都不是固定的,這就需要可變引數列表,要使用可變引數列表,要用到以下幾種巨集。include void va start va list ap,last type va arg va list ap,type void v...

(C語言)可變引數列表

c函式要在程式中用到以下這些巨集 void va start va list arg ptr,prev param type va arg va list arg ptr,type void va end va list arg ptr va list 用來儲存巨集va start va arg和v...

C語言可變引數列表 1

嘗試使用c語言可變引數列表 對於一些函式有的時候,我們不希望它只能傳遞固定引數,例如如果我們想計算2個整數數之和寫乙個int sum int int 的函式,但是如果想計算3個數之和呢?n個數之和呢?不可能去定義無限多個函式,也不能讓函式的引數太多,形如int sum int int int int...