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.
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
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.
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.
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. |
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.
1. "Arahan Preprocessor." Cplusplus.com. Terdapat di sini
2. "C Inline Functions." Www.tutorialspoint.com, Titik Tutorial, 19 Mac 2018. Boleh didapati di sini