Kita semua pasti telah menggunakan typedef
dan #define
s satu waktu atau yang lain. Hari ini ketika bekerja dengan mereka, saya mulai merenungkan sesuatu.
Pertimbangkan 2 situasi di bawah ini untuk menggunakan int
tipe data dengan nama lain:
typedef int MYINTEGER
dan
#define MYINTEGER int
Seperti situasi di atas, kita dapat, dalam banyak situasi, menyelesaikan dengan sangat baik menggunakan #define, dan juga melakukan hal yang sama dengan menggunakan typedef, walaupun cara kita melakukan hal yang sama mungkin sangat berbeda. #define juga dapat melakukan tindakan MACRO yang tidak bisa dilakukan typedef.
Meskipun alasan dasar untuk menggunakannya adalah berbeda, seberapa berbeda kerjanya? Kapan sebaiknya satu lebih disukai dari yang lain ketika keduanya dapat digunakan? Juga, apakah satu dijamin lebih cepat daripada yang lain dalam situasi apa? (misalnya, #define adalah arahan preprosesor, jadi semuanya dilakukan jauh lebih awal daripada saat kompilasi atau runtime).