Inline vs Macro
C ++ telah pergi terlalu jauh dalam bidang pengaturcaraan komputer hari ini. Sebagai bahasa yang kuat, kadang-kadang mendapat sedikit membingungkan kepada pengaturcara kerana perpustakaan fungsi yang besar. Fungsi inline adalah salah satu daripada mereka yang dengan mudah boleh dikelirukan dengan makro dalam bahasa.
Bukannya terdapat perbezaan kecil antara kedua-dua, tetapi mereka boleh sedikit mengelirukan kerana sifat yang mereka pegang. Dalam artikel ini, kita akan membincangkan lebih lanjut mengenai perbezaan antara fungsi dalam dan makro dalam C++.
Dalam barisan
Fungsi inline sama seperti fungsi lain dalam C ++ dan juga dipanggil secara teratur. Fungsi yang ia lakukan ialah membuat salinan definisi fungsi yang disusun. Iaitu, ia membuat salinan item yang ditentukan untuk dikompilasi. Satu contoh boleh diambil jika kita menambah mana-mana dua bilangan bulat dan memanggilnya fungsi inline, pengkompil akan membuat salinan bulat yang akan dikumpulkan.
Contoh:
Int int keseluruhan (int x, int y)
Pulangan (x + y);
Makro
Makro di C ++ melaksanakan penggantian teks dalam baris program. Iaitu, mereka menggantikan teks mengikut perubahan yang ditakrifkan dalam fungsi tersebut. Tidak seperti inline sebagai fungsi, makro memanipulasi kod menggunakan fungsi. Sebagai contoh:
#define DOUBLE (X) X * X
int y = 5;
int j = DOUBLE (++ y);
Di sini, kita akan mendapat nilai sebanyak 30! Oleh kerana panggilan telah dilakukan melalui makro, "X" telah digantikan dengan ++ y yang menjadikan ++ y untuk didarab dengan satu lagi ++ y. Ini menjadikan jumlah 5 * 6 yang 30 bukan 6. Enam akan menjadi asas tetapi satu jawapan yang salah.
Sekarang, makro mungkin menyebabkan pepijat di sini. Jadi fungsi inline datang untuk menyelamatkan dengan menyalin nilai-nilai ke memori kompilator 'dan kemudian menyusunnya.
Ringkasan:
1. Satu fungsi inline mencipta salinan takrif fungsi.
2. Makro menggantikan teks seperti yang dikenal pasti dan ditakrifkan dalam fungsi.
3. Satu fungsi inline juga digunakan apabila makro sepatutnya menyebabkan pepijat dalam program.