Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C - Argumen Variabel

Terkadang, Anda mungkin menemukan situasi, ketika Anda ingin memiliki fungsi, yang dapat mengambil sejumlah variabel argumen, yaitu parameter, alih-alih sejumlah parameter yang telah ditentukan sebelumnya. Bahasa pemrograman C memberikan solusi untuk situasi ini dan Anda diizinkan untuk mendefinisikan fungsi yang dapat menerima sejumlah variabel parameter berdasarkan kebutuhan Anda. Contoh berikut menunjukkan definisi fungsi tersebut.

int func(int, ... ) {
   .
   .
   .
}

int main() {
   func(1, 2, 3);
   func(1, 2, 3, 4);
}

Perlu dicatat bahwa fungsi func() memiliki argumen terakhir sebagai elips, yaitu tiga titik (... ) dan yang tepat sebelum elips selalu berupa int yang akan mewakili jumlah total argumen variabel yang diteruskan. Untuk menggunakan fungsi tersebut, Anda perlu menggunakan stdarg.h file header yang menyediakan fungsi dan makro untuk mengimplementasikan fungsionalitas argumen variabel dan ikuti langkah-langkah yang diberikan −

Sekarang mari kita ikuti langkah-langkah di atas dan tuliskan fungsi sederhana yang dapat mengambil jumlah variabel parameter dan mengembalikan rata-ratanya −

Demo Langsung
#include <stdio.h>
#include <stdarg.h>

double average(int num,...) {

   va_list valist;
   double sum = 0.0;
   int i;

   /* initialize valist for num number of arguments */
   va_start(valist, num);

   /* access all the arguments assigned to valist */
   for (i = 0; i < num; i++) {
      sum += va_arg(valist, int);
   }
	
   /* clean memory reserved for valist */
   va_end(valist);

   return sum/num;
}

int main() {
   printf("Average of 2, 3, 4, 5 = %f\n", average(4, 2,3,4,5));
   printf("Average of 5, 10, 15 = %f\n", average(3, 5,10,15));
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut. Perlu dicatat bahwa fungsi rata-rata() telah dipanggil dua kali dan setiap kali argumen pertama mewakili jumlah total argumen variabel yang diteruskan. Hanya elips yang akan digunakan untuk meneruskan jumlah variabel argumen.

Average of 2, 3, 4, 5 = 3.500000
Average of 5, 10, 15 = 10.000000

Bahasa C

  1. Jenis Fungsi yang Ditentukan Pengguna dalam Pemrograman C
  2. Kelas Penyimpanan C
  3. Lewati array ke fungsi di C
  4. Argumen Fungsi Python
  5. Variabel dan Tipe C++:int, double, char, string, bool
  6. Variabel C, Tipe Data, Konstanta
  7. Tugas Verilog
  8. C - Variabel
  9. C - Fungsi
  10. C - Pointer