Perbezaan Antara Inline dan Makro Perbezaan Antara

Anonim

Inline vs Macro

C ++ telah 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.

Tidak ada perbezaan kecil di antara keduanya, 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 ++.

Inline

Fungsi inline sama seperti fungsi lain dalam C ++ dan juga dipanggil secara teratur. Fungsi yang ia lakukan ialah membuat salinan definisi fungsi yang telah disusun. Iaitu, ia membuat salinan item yang ditentukan untuk dikompilasi. Satu contoh boleh diambil jika kita menambah mana-mana dua bulat dan memanggilnya fungsi inline, pengkompil akan membuat satu salinan bulat yang akan dikumpulkan.

Contoh:

Intl 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 itu. 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! Apabila 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 tidak 6. Enam akan menjadi asas tetapi satu jawapan yang salah.

Sekarang, makro mungkin menyebabkan pepijat di sini. Jadi fungsi inline datang untuk menyelamatkan diri dengan menyalin nilai-nilai kepada memori kompilator 'dan kemudian menyusunnya.

Ringkasan:

1. Fungsi sebaris menghasilkan salinan definisi fungsi.

2. Makro menggantikan teks sebagai dikenal pasti dan ditakrifkan dalam fungsi.

3. Fungsi sebaris juga digunakan apabila makro sepatutnya menyebabkan pepijat dalam program.