模擬實現printf函式

2021-08-21 20:11:31 字數 784 閱讀 1862

printf函式我們平時用的最多,當然用的時候並沒有想太多庫裡面是如何實現這個函式的,下面我們來看看

首先我們來分析一下,printf需要具備的功能:

> 1,輸出字串;

> 2,輸出字元;

> 3,輸出整型;

> 4….當然還有其他的型別,這裡主要實現前三種

下面我們先寫出主函式:(主函式如下)

由於printf函式輸出的型別是不確定的,所以這裡我們必然要用到可變引數

int main()

注:主函式裡面的print函式就是我們要自己實現的函式

void print(const

char *format, ...)

}break;

case

'd'://整型

break;

case

'c':

break;

default:

putchar(*format);//如果不是以上三種型別的,我們按它原本的輸出

模擬實現printf函式

如果要想解決這個問題 就要 知道乙個知識點 可變引數列表 可變引數列表是通過巨集來實現的,這些巨集定義於stdarg.h標頭檔案中,它是標準庫的一部分。這個標頭檔案宣告 個型別va list 和三個巨集va start va arg和va end。轉到定義處 檢視一下這幾個巨集和型別 typedef...

模擬實現printf 函式

在構建printf 函式之前,需要簡單分析printf 在幫助文件中可以看到,printf 的格式為printf char format,也就是說printf 是乙個可變引數的函式 此外,還需要了解這些引數是如何在記憶體中儲存的。從這個棧楨結構圖中可以看到print 函式的引數的存放方式,print...

模擬實現 」printf「 函式

在c語言學習中,通過將函式實現為可變引數 形式,使得函式可以接受任意多個引數。當了解可變引數之後很容易實現printf函式。能完成下面函式的呼叫。print s ccc d.n hello b i t 100 函式原型 print char format,include include 使用可變引數...