Perbezaan antara inline dan makro

Perbezaan antara inline dan makro

Sebaris vs makro

C ++ telah terlalu jauh dalam bidang pengaturcaraan komputer hari ini. Menjadi bahasa yang kuat, kadang -kadang mendapat sedikit mengelirukan kepada pengaturcara kerana perpustakaan fungsinya yang besar. Fungsi sebaris adalah salah satu daripada mereka yang mudah dikelirukan dengan makro dalam bahasa.
Bukannya terdapat perbezaan kecil antara kedua -dua, tetapi mereka boleh menjadi sedikit mengelirukan kerana sifat yang mereka pegang. Dalam artikel ini, kita akan membincangkan lebih lanjut mengenai perbezaan antara fungsi inline dan makro dalam c++.

Dalam barisan
Fungsi sebaris adalah seperti fungsi lain dalam C ++ dan juga dipanggil dengan cara yang biasa. Fungsi yang dilakukannya ialah membuat salinan definisi fungsi yang disusun. Iaitu, ia mewujudkan salinan item yang ditetapkan untuk disusun. Contohnya boleh diambil jika kita menambah dua bilangan bulat dan menyebutnya fungsi sebaris, pengkompil akan membuat salinan bilangan bulat yang akan disusun.
Contoh:

Inline int sum (int x, int y)

Kembali (x+y);

Makro
Makro di C ++ melaksanakan penggantian teks dalam barisan program. Iaitu, mereka mengganti teks mengikut perubahan yang ditakrifkan dalam fungsi. Tidak seperti sebaris 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! Memandangkan panggilan telah dilakukan melalui makro, "x" telah digantikan dengan ++ y yang menjadikan ++ y akan didarabkan oleh ++ y yang lain. Ini menjadikan jumlah 5*6 iaitu 30 bukan 6. Enam akan menjadi asas tetapi jawapan yang salah.

Sekarang, makro mungkin menyebabkan pepijat di sini. Oleh itu, fungsi sebaris datang untuk menyelamatkan dengan menyalin nilai -nilai ke ingatan penyusun dan kemudian menyusunnya.

Ringkasan:

1.Fungsi sebaris mencipta salinan definisi fungsi.
2.Makro menggantikan teks seperti yang dikenalpasti dan ditakrifkan dalam fungsi.
3.Fungsi sebaris juga digunakan apabila makro sepatutnya menyebabkan pepijat dalam program.