如題
我們在寫可變引數列表函式之前,先來了解一下什麼是可變引數列表函式。
我們在c語言程式設計中有時會遇到 一些引數個數可變的函式,例如printf()函式,其函式原型為:
int printf(const char* format,…);
它除了有乙個引數format固定以外,後面跟的引數個數和型別是可變的(用三個點「...」做引數佔位符),實際呼叫時可以有以下的形式:
printf(「%d」,i);
printf(「%s」,s);
printf("the number is %d,string is:%s",i ,s);
**如下:
#include#includevoid my_printf(char *fmt,...)
case 'c':
default:
} fmt++;
} va_end(arg);
}int main()
執行結果:
可變引數 函式 可變引數列表 1
我們在c語言程式設計中有時會遇到一些引數個數可變的函式,即函式的入參個數和型別是不確定的,例如printf 函式,其函式原型為 int printf char format,它除了有乙個引數format固定以外,後面跟的引數的個數和型別是可變的 用三個點 做引數佔位符 實際呼叫時可以有以下的形式 p...
C可變引數列表函式
c語言中可以定義接收不同的引數的函式 可變引數的函式可以接收不同數目的引數,但是需要注意的是c語言中函式的引數個數不能超過5個。可變引數的函式的原型如下int narg sum int arg num,在引數列表中至少要有乙個命名的引數。可變引數函式的實現需要用到va start va arg va...
可變引數列表的實現
在學習c語言的過程中,大家是不是和我一樣,認為printf是乙個神一樣的函式?他可以接受不同數目,不同型別的引數,他到底是怎麼實現的呢?讓我們去看一下它的源 printf源 int printf const char fmt,它採用的是可變引數列表,可變引數列表主要有以下兩個缺點 1 無法確定可變引...