如何使用可變長引數的函式實現乙個print函式

2021-08-19 03:55:02 字數 677 閱讀 5834

print()的第乙個引數指定後續各引數的型別,第二個引數開始指定需要輸出的值。

例如:print("sscddd","hello","world",'!',2018,4,21);

在這個例子中,通過第乙個引數"sscddd",制定後續的引數型別為「字串,字串,字元,int,int,int」,在這裡s代表字串,c代表字元,d代表整型數。

因為該函式指定換行符的輸出比較繁瑣,所以該函式在預設情況下會主動換行。

具體實現**如下:

#include #include是c語言中c標準函式庫的標頭檔案,主要目的為讓函式能夠接收可變引數。

#include是c標準庫的乙個標頭檔案,該標頭檔案的主要目的就是提供乙個assert的巨集定義。

void print(char *format,...);

int main(int argc, char *argv)

void print(char *format,...)

} va_end(ap);//這是乙個空定義,在標準裡對於有va_start()的函式需要寫va_end()。

putchar('\n');

}

執行輸出結果如下:

可變長函式引數

1.1 什麼是可變長引數 可變長引數 顧名思義,就是函式的引數長度 數量 是可變的。比如 c 語言的 printf 系列的 格式化輸入輸出等 函式,都是引數可變的。下面是 printf 函式的宣告 int printf const char format,可變引數函式宣告方式都是類似的。1.2 如何...

Java可變長引數的使用

1.可變長引數在定義的時候只能放在方法的最後乙個引數位置,乙個方法只允許乙個可變長引數 2.可變長引數本質就是陣列,因此如下方式的定義是錯誤的 public class thinking public void test string p 3.呼叫的時候會優先選擇固定長度引數的方法,如下面 的輸出就...

可變長函式引數模板

include 通用可變引數模板 處理不限定個數的引數,處理不同型別 void showall 空函式,介面,最後結束遞迴 新版本編譯 強制預留介面 template 可變長度!void showall const t value,const args args 設計可以修改原來的資料的 t val...