Artikel Terbaru

4 Keunggulan Utama Bitcoin

Sebelum membicarakan tentang bitcoin, terlebih dahulu mari pahami apa yang dimaksud dengan uang. Apa sebenarnya yang dimaksud dengan uang? Pada dasarnya, uang adalah segala sesuatu yang mewakili nilai tertentu.

Variabel Panjang Argumen Untuk Makro pada Bahasa C

Seperti hal nya sebuah fungsi, variabel juga dapat melewatkan panjang argumennya ke makros pada bahasa C. 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 tokenpasting juga digunakan untuk menggabungkan argumen variabel tersebut.

Pada contoh akan disediakan makro yang 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 pertama "prio" menentukan perioritas dari pesan, atau apakah informasi yang dikirim error atau tidak, "stream" adalah "standard output" atau "standar error" akan menampilkan pesan stdout dan pesan error pada stderr stream.

#include <stdio.h> 

 

#define INFO

#define ERR

#define STD_OUT stdout 

#define STD_ERR stderr 

 

#define LOG_MESSAGE(prio, stream, msg, ...) do 

{\ 

char *str;\ 

if (prio == INFO)\ 

str = "INFO";\ 

else if (prio == ERR)\ 

str = "ERR";\ 

fprintf(stream, "[%s] : %s : %d : "msg" \n", \ 

str, __FILE__, __LINE__, ##__VA_ARGS__);\ 

} while (0

 

int main(void

char *s = "Hello"

 

/* menampilkan pesan normal */

LOG_MESSAGE(ERR, STD_ERR, "Gagal membuka file"); 

 

/* menyediakan string sebagai argumen */

LOG_MESSAGE(INFO, STD_OUT,"%s"

" makan nasi padang", s); 

 

/* menyediakan integer sebagai argumen */

LOG_MESSAGE(INFO, STD_OUT,"%d"

" + %d = %d", 10, 20, (10 + 20)); 

 

return 0

}

Setelah program dikompilasi, maka akan menghasilkan pesan berikut ini.

  [narendra@/media/partition/GFG]$ ./variable_length 
  [ERR] : variable_length.c : 26 : Gagal membuka file 
  [INFO] : variable_length.c : 27 : Hello makan nasi padang 
  [INFO] : variable_length.c : 28 : 10 + 20 = 30 
  [narendra@/media/partition/GFG]$

Komentar

  1. Materinya lumayan memusingkan juga yakkk,,,

    BalasHapus
  2. Apa yang dimaksud dengan stdout pada bahasa C?

    BalasHapus
    Balasan
    1. stdout adalah singkatan dari standard output stream dan merupakan stream yang tersedia untuk program pada sistem operasi itu sendiri. stdout sudah tersedia untuk program dari awal program tersebut dijalan bersamaan dengan stdin dan stderr pada bahasa C.

      Hapus
  3. Apa yang dimaksud dengan stream pada bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Secara konsep, program bahasa C selalu berurusan dengan sebuah stream atau aliran progran, bukan secara langsung berinteraksi terhadap file. Stream adalah aliran data ideal yang mengikuti input ataupun output aktual yang telah dipetakan pada program. Stream berarti berbagai jenis inputan dengan properti berbeda yang diwakili oleh stream dengan properti yang lebih beragam.

      Hapus
    2. Data adalah sesuatu yang sifatnya mengalir (stream). Jadi, stream dalam dunia pemrograman berarti adalah aliran data itu sendiri. Aliran data pada dasarnya adalah urutan dari data, dimana data apapun yang digunakan dalam pemrograman yang mengalir melalui suatu aliran tertentu (stream).

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung. :D

Catatan: setiap iklan yang ditayangkan pada blog ini bersumber dari google adsense. Dengan jenis iklan yang dipilih adalah, sebagai berikut.

POIN 1, Iklan yang ditampilkan hanya boleh berbahasa indonesia atau berbahasa inggris. Tidak menerima jenis iklan dalam bahasa yang lain selain yang telah disebutkan karena blog ini dibuat untuk para pengunjung dari negara atau orang yang berbahasa Indonesia.

POIN 2, Setiap gambar yang ditampilkan pada iklan sifatnya tidak mengganggu para pengunjung yang melihat blog, atau tidak boleh menampilkan gambar yang bersifat menjijikkan atau merangsang rasa mual.

POIN 3, Jenis iklan yang dipasang bukan merupakan iklan spam, atau berisi dan mengarahkan pengunjung ke alamat yang berbahaya atau bersifat penipuan.

POIN 4, Segala bentuk iklan tunduk dan patuh pada ketentuan dari pihak Adsense google dan pemilik blog.

POIN 5, Segala jenis iklan yang tidak bertentangan dengan poin 1-4 yang dijelaskan sebelumnya, maka iklan tersebut dapat ditampilkan pada blog.

POIN 6, Jika ada pihak ketika yang ingin memasang iklan pada blog ini secara langsung, maka dapat menghubungi pemilik blog melalui kontak 0882 3218 8316.



~ Ikatlah Ilmu dengan Memostingkannya ~

Hot Artikel

Enkapsulasi pada Java

Perbedaan stdio.h dan stdlib.h pada Bahasa C

4 Contoh Program Java dan Multiple Inheritance

6 Tahap Utama dalam Melakukan Kompilasi Program Hello World Java