Bildirim
void va_end(va_list ap); (Makro)
Açıklama
Va_start veya va_copy makrosu ile değer ataması yapılan bir ap değişkeni için temizleme yapar.
Parametreler
ap: va_list veri türünden bir değişken olup ek parametreleri almak için gerekli bilgiyi içerir.
Dönüş değeri
Yok.
Örnek
#include <stdio.h>
#include <stdarg.h>
void yazdir(int param, ...);
int main(void) {
yazdir(5, 21, 7, 16, 124, 85);
printf("\n");
yazdir(3, 127, 65, 42);
printf("\n");
yazdir(4, 246, 57, 35, 72);
return 0;
}
void yazdir(int param, ...) {
va_list ap;
int id;
va_start(ap, param);
for(id=0; id<param; id++) {
printf("%d ", va_arg(ap, int));
}
va_end(ap);
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
21 7 16 124 85 127 65 42 246 57 35 72
Yukarıdaki program, önce ilk parametresine ilk parametreden sonra yer alan parametre sayısını diğer parametrelere de int değerler atayarak yazdir() fonksiyonunu 3 kez çağırır. Fonksiyon içinde va_start makrosu parametre sayısını kullanarak ap değişken değerini doldurur. Bir döngü yoluyla va_arg makrosunu kullanarak her defasında bir parametre değerini alarak ekrana yazar. va_end makrosu ile ap değişken değerini siler.