Kamis, Juni 25, 2020

Variabel panjang argumen untuk Makro

Seperti hal nya sebuah fungsi, variabel juga dapat melewatkan panjang argumennya ke makros. Untuk dapat melakukan perintah tersebut maka digunakan identifier preprosesor.

Untuk mendukung panjang argumen variabel pada makro, maka perlu disertakan '(...)' pada definisi makro. Juga terdapat identifier preprosesor "_VA_ARGS_" yang akan mengelola subtitusi panjang argumen variabel yang disediakan pada makro. Operator '##' (atau operator paste) juga digunakan untuk menggabungkan argumen variabel.

Pada contoh akan akan disediakan makro mengambil argumen panjang nilai seperti fungsi "printf()". Makro ini berfungsi untuk error loging. Makro akan mencetak nama file diikuti baris angka, dan terakhir akan mencetak pesan atau info error. Argumen pertaman "prio" menentukan perioritas dari pesan, atau apakah informasi yang dikirim error atau tidak, "stream" adalah "standard output" atau "standar error" yang akan menampilkan pesan stdout dan pesan error pada stderr stream.



Setelah program dikompilasi dan dijalankan, maka akan menghasilkan pesan berikut ini.

  [narendra@/media/partition/GFG]$ ./variable_length 
  [ERR] : variable_length.c : 26 : Failed to open file 
  [INFO] : variable_length.c : 27 : Hello Geeks for Geeks 
  [INFO] : variable_length.c : 28 : 10 + 20 = 30 
  [narendra@/media/partition/GFG]$





Related Posts

Variabel panjang argumen untuk Makro
Oleh

"semoga yang memberikan komentar diberikan berkah kebaikan dari Allah, dijauhkan dari kejahatan, dan diberikan pahala ilmu dan amal jariyah dari sepenggal kata yang ia tinggalkan amiin :) "