Perbezaan Antara Fungsi Makro dan Inline

Perbezaan Utama - Macro vs inline Fungsi
 

Makro adalah serpihan kod, yang merupakan arahan preprocessor. Fungsi inline adalah ciri peningkatan C ++ untuk meminimumkan masa pelaksanaan sesuatu program. Oleh itu, perbezaan utama antara Makro dan Fungsi Dalam Talian ialah makro diperiksa oleh preprocessor sementara fungsi sebaris diperiksa oleh pengkompil.

Makro dimasukkan dalam permulaan program yang didahului dengan tanda hash. Apabila terdapat nama makro dalam program, ia digantikan dengan kandungan makro.

KANDUNGAN

1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apakah Makro
3. Apakah Fungsi Dalam Talian
4. Side by Side Comparison - Makro vs Inline Function dalam Borang Tabular
5. Ringkasan

Apa Makro??

Preprocessor adalah program yang memproses kod sumber sebelum ia melewati pengkompil. Ia beroperasi dengan menggunakan arahan arahan preprocessor atau arahan. Dalam program ini, arahan preprocessor diletakkan di dalam program sumber sebelum program utama. Sebelum kod sumber diteruskan oleh pengkompil, ia diperiksa oleh preprocessor untuk arahan preprocessor. Arahan preprocessor mempunyai simbol #. Tidak seperti kenyataan lain, mereka tidak berakhir dengan titik koma. Satu jenis arahan preprocessor adalah makro. Pada umumnya, makro ditulis dalam huruf kapital.

Rajah 01: Program C ++ dengan Makro

Menurut program di atas, baris 3 dan baris 4 menunjukkan makro. Apabila mengira kawasan tersebut, nilai PI diganti menggunakan makro yang ditakrifkan. Dalam baris 14, jumlah = CUBE (nilai), preprocessor memperluaskan pernyataan sebagai nilai volum = (nilai * nilai *). Mencari kubus boleh ditulis sebagai fungsi, tetapi di sini ia ditulis menggunakan makro. Sekiranya terdapat pernyataan sebagai isipadu = CUBE (x + y), maka ia akan berkembang kepada isipadu = (x + y * x + y * x + y).

Sesetengah token pengaturcaraan mungkin dengan mudah disalah tafsir. Mereka boleh digantikan menggunakan makro. contohnya. #define AND &&, #define OR ||. Takrifan makro juga boleh merangkumi ungkapan seperti #define AREA 4 * 5.56.

Apakah Fungsi Dalam Talian??

Apabila fungsi dipanggil, compiler mengambil sedikit masa untuk melaksanakannya. Sekiranya fungsi itu tidak begitu rumit, programmer dapat menukar fungsi tersebut ke fungsi inline. Rujuk program di bawah.

Rajah 02: Fungsi tanpa Inline

Print_hello adalah fungsi yang mudah. Ia mencetak rentetan "Hello" apabila fungsi itu dipanggil. Masa pelaksanaan untuk fungsi itu ialah 0.187s. Apabila menggunakan kata kunci sebaris sebagai berikut, masa pelaksanaan akan berkurangan kepada 0.064s.

Rajah 03: Fungsi Dalam Talian

Oleh itu, dengan menggunakan kata kunci sebaris, masa pelaksanaan akan dikurangkan. Fungsi inline mungkin tidak berfungsi jika terdapat gelung, menukar kenyataan dan jika fungsi tersebut mengandungi pembolehubah statik atau fungsi rekursif.

Apakah Perbezaan Antara Fungsi Makro dan Inline?

Macro vs Inline Function

Makro adalah serpihan kod, yang merupakan arahan preprocessor yang disertakan pada permulaan program yang didahului dengan tanda hash. Fungsi inline adalah ciri peningkatan C ++ untuk meminimumkan masa pelaksanaan sesuatu program.
Masa Penilaian
Dalam makro, hujah itu dinilai setiap kali ia digunakan dalam program. Dalam inline, hujah itu dinilai sekali.
Diperiksa oleh
Makro diperiksa oleh preprocessor. Fungsi sebaris diperiksa oleh pengkompil.
 Kata kunci
Marco menggunakan #define. Fungsi inline menggunakan kata kunci 'inline'.
Penggunaan
Makro boleh digunakan untuk menentukan pemalar, ungkapan, untuk penggantian teks literal dan untuk menentukan fungsi dan lain-lain. Fungsi sebaris boleh digunakan untuk meminimumkan masa pelaksanaan program.
Penamatan
Makro tamat dengan baris baru. Fungsi inline tamat dengan pendakap kerinting pada akhir fungsi sebaris.
Menentukan Titik
A Marco ditakrifkan pada permulaan program. Fungsi sebaris boleh berada di dalam atau di luar kelas.

Ringkasan - Macro vs inline Fungsi

Artikel ini membincangkan perbezaan antara Makro dan Fungsi Dalam Talian. Konsep-konsep ini digunakan dalam pengaturcaraan C ++. Perbezaan antara Makro dan Fungsi Dalam Talian ialah makro diperiksa oleh preprocessor sementara fungsi sebaris diperiksa oleh compiler.

Rujukan:

1. "Arahan Preprocessor." Cplusplus.com. Terdapat di sini 
2. "C Inline Functions." Www.tutorialspoint.com, Titik Tutorial, 19 Mac 2018. Boleh didapati di sini