Perbedaan antara inline dan makro

Perbedaan antara inline dan makro

Inline vs makro

C ++ telah melangkah terlalu jauh di bidang pemrograman komputer akhir -akhir ini. Menjadi bahasa yang kuat, kadang -kadang sedikit membingungkan para programmer karena perpustakaan fungsi yang sangat besar. Fungsi inline adalah salah satunya yang dapat dengan mudah dikacaukan dengan makro dalam bahasa.
Bukannya ada perbedaan kecil antara keduanya, tetapi mereka bisa sedikit membingungkan karena sifat yang mereka pegang. Dalam artikel ini, kita akan membahas lebih lanjut tentang perbedaan antara fungsi inline dan makro di C++.

Di barisan
Fungsi inline sama seperti fungsi lainnya di C ++ dan juga dipanggil secara teratur. Fungsi yang dilakukannya adalah membuat salinan definisi fungsi yang dikompilasi. Artinya, itu membuat salinan item yang ditentukan untuk dikompilasi. Contoh dapat diambil jika kami menambahkan dua bilangan bulat dan menyebutnya fungsi inline, kompiler akan membuat salinan bilangan bulat yang akan dikompilasi.
Contoh:

Inline int sum (int x, int y)

Return (x+y);

Makro
Makro di C ++ mengimplementasikan penggantian teks di baris program. Yaitu, mereka menggantikan teks sesuai dengan perubahan yang ditentukan dalam fungsi. Tidak seperti inline sebagai fungsi, makro memanipulasi kode menggunakan fungsi. Misalnya:
#define double (x) x*x

int y = 5;
int j = ganda (++ y);

Di sini, kami akan mendapatkan nilainya sebagai 30! Karena panggilan telah dilakukan melalui makro, "x" telah diganti dengan ++ y yang membuat ++ y dikalikan dengan ++ y lainnya. Ini membuat total 5*6 yaitu 30 bukan 6. Enam akan menjadi dasar tetapi jawaban yang salah.

Sekarang, makro mungkin menyebabkan bug di sini. Jadi fungsi inline datang untuk menyelamatkan dengan menyalin nilai ke memori kompiler dan kemudian menyusunnya.

Ringkasan:

1.Fungsi inline membuat salinan definisi fungsi.
2.Makro menggantikan teks sebagaimana diidentifikasi dan didefinisikan dalam fungsi.
3.Fungsi inline juga diterapkan ketika makro seharusnya menyebabkan bug dalam program ini.