Dalam bahasa pemrograman C terdapat istilah macro dan function. Definisi dari macro ialah sebuah instruksi yang dapat berkembang dengan sendirinya menjadi banyak instruksi (menjadi lebih besar) untuk menjalankan pekerjaan tertentu. Sehingga dengan kata lain bisa dikatakan sebagai sebuah simbol yang merepresentasikan banyak instruksi. Sedangkan function dalam pemrograman, merupakan bagian dari program yang menjalankan suatu perintah secara spesifik.
Berikut ini ialah perbedaan antara function dengan macro.
- Macro bersifat preprocessed, sedangkan function baru dijalankan setelah melalui proses compile
- Pada macro tidak dilakukan type checking, sedangkan function dilakukan type checking
- Panjang code macro bertambah, sedangkan function tetap
- Penggunaan macro dapat mengakibatkan efek samping pada program, sedangkan function tidak
- Kecepatan eksekusi macro lebih cepat dari function
- Sebelum proses compile nama macro diganti dengan nilai macro, selama pemanggilan function terjadi transfer kendali
- Macro berguna bila code yang berukuran kecil muncul berulang kali, sedangkan function lebih berguna untuk code berukuran besar
- Pada umumnya macro tidak lebih dari satu baris, sedangkan function bisa terdiri dari banyak baris
- Tidak dilakukan proses checking compile error pada macro, sedangkan pada function dilakukan