sebenarnya macro itu ada juga di bahasa2 lain, seperti assembly ==> masm, tasm, as86, etc. bahasa2 scripting juga punya macro: tex (latex adalah macro dari tex).. saya rasa istilah ini sangat umum.

intinya macro ini dapat digunakan untuk menyederhanakan penulisan -- tidak berhubungan dengan isu efisiensi. tetapi ada juga kekurangannya, karena dengan menggunakan macro lebih sulit untuk melakukan debugging jika menggunakan step / breakpoint, karena tidak jelas bagian source code mana yang menghasilkan breakpoint (pada hasil kompilasi macro telah di-expand, sedang pada source code tidak). jadi macro sebaiknya digunakan untuk mempermudah pembacaan dan untuk portabilitas (digabungkan preprocessor dengan #ifdef / #define / #undef / etc.), tetapi jangan over-use.

juga, biasanya macro ini diproses secara one-pass, jadi kita tidak dapat mendefinisikan macro yg rekursif.

Danny Kurniawan wrote:

itu maksudnya macro... di C/C++ terdapat fasilitas untuk mendefinisikan macro yang setahu saya sampai saat ini belum ada di bahasa pemrograman lainnya...

seperti namanya, macro bisa diartikan search & replace atau bisa diartikan sebagai inline... anyway... maksudnya... kalo compiler menemukan teks:

MY_CALLOC(x, y)

maka compiler akan melakukan search & replace menjadi:

(y *)calloc(x, sizeof(y))

begitulah maksudnya... jadi tergantung kita memasukkan apa di parameternya...
lebih jelasnya lihat ke manual GCC (entah ada atau tidak... saya tidak ingat) atau ke buku2 tentang C/C++

[...deleted...]

--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis

Kirim email ke