stdarg dalam bahasa pemprogramman C
Stdarg
stdarg.h adalah header di perpustakaan standar C bahasa pemrograman C yang memungkinkan fungsi untuk menerima jumlah yang tak terbatas argumen.
Header ini mendefinisikan macro untuk mengakses argumen individu daftar argumen yang tidak disebutkan namanya yang jumlah dan jenis yang tidak diketahui yang disebut fungsi
Sebuah fungsi dapat menerima berbagai jumlah argumen tambahan tanpa sesuai deklarasi parameter dengan memasukkan koma dan tiga titik (...) setelah parameter bernama reguler.
Format: return_type function_name (parameter_declarations, ...);
Untuk mengakses argumen tambahan macro va_start, va_arg dan va_end, dinyatakan dalam header ini, dapat digunakan:
1. Pertama, va_start menginisialisasi daftar argumen variabel sebagai va_list.
2. eksekusi selanjutnya dari va_arg menghasilkan nilai-nilai dari argumen tambahan dalam urutan yang sama seperti dilewatkan ke fungsi.
3. Akhirnya, va_end harus dijalankan sebelum kembali fungsi.
Jenis: va_list: Jenis untuk menyimpan informasi tentang argumen variabel (tipe)
Fungsi makro:
1. va_start: Mulai argumen iterasi dengan va_list
2. va_arg: Ambil argumen
3. va_end: Gratis va_list
4. va_copy: Copy isi dari satu ke yang lain va_list
Anda mengontrol akses argumen variabel dengan definisi berikut / fungsi / macro tersedia di stdarg. Semua referensi ini harus hanya muncul di dalam tubuh fungsi yang akan memiliki sejumlah variabel argumen (seperti dilambangkan dengan elipsis):
Varname 1. va_list;
Ini adalah nama dari sebuah struktur yang akan mempertahankan informasi tentang daftar argumen variabel, dan oleh karena itu digunakan di masing-masing berikut fungsi / macro. Dan contoh mungkin: args va_list;
2. va_start (varname, last_defined_arg); Fungsi ini menginisialisasi pengolahan daftar argumen variabel. Parameter pertama sesuai dengan nama variabel yang digunakan saat menetapkan struktur va_list. Parameter kedua sesuai dengan nama variabel argumen didefinisikan terakhir dalam daftar argumen dalam definisi fungsi ini. Fungsi ini harus dipanggil sebelum Anda mencoba untuk referensi salah satu argumen variabel. Sebuah contoh akan:
void foo (int num, ...) {
args va_list;
va_start (args, num);
3. va_arg (varname, typename);
Fungsi ini adalah salah satu yang Anda gunakan untuk mengakses nilai dari setiap argumen variabel. Parameter pertama sesuai dengan nama variabel yang digunakan saat menetapkan struktur va_list. Parameter kedua sesuai dengan jenis nilai yang dilewatkan. The va_arg () fungsi akan kembali kepada Anda untuk nilai yang sesuai dari argumen variabel berikutnya pada gilirannya. Ini berarti bahwa pertama kali va_arg () dipanggil, maka akan mengembalikan nilai dari argumen variabel pertama berlalu dalam doa ini fungsi, kedua kalinya itu disebut akan mengembalikan nilai dari argumen variabel kedua berlalu, dan sebagainya. Berikut adalah beberapa contoh:
int num1 = va_arg (args, int);
mengapung num2 = va_arg (args, float);
4. va_end (varname);
Fungsi ini Anda menelepon di akhir fungsi Anda, tepat sebelum Anda kembali. Ini tugas adalah untuk menempatkan sistem tumpukan dalam rangka, dan mempersiapkan diri untuk kembali ke rutinitas panggilan. Hanya harus dipanggil sekali dan tidak harus disebut setiap kali Anda ingin menggunakan kembali daftar argumen. Berikut adalah contoh: va_end (args);
Contoh :
Borgata Hotel Casino and Spa, Atlantic City - Mapyro
BalasHapusFind hotels, motels, and other lodging near Borgata 경기도 출장마사지 Casino and Spa in 통영 출장안마 Atlantic City, NJ. Find reviews, photos & cheap 세종특별자치 출장안마 rates for Borgata 충청북도 출장마사지 Hotel Casino 태백 출장마사지 and Spa in