Perbezaan antara fungsi makro dan sebaris

Perbezaan antara fungsi makro dan sebaris

Perbezaan utama - macro vs inline Fungsi
 

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

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

Kandungan

1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apa itu makro
3. Apakah fungsi dalam talian
4. Perbandingan sampingan - Macro vs fungsi inline dalam bentuk jadual
5. Ringkasan

Apa itu makro?

Preprocessor adalah program yang memproses kod sumber sebelum melewati pengkompil. Ia beroperasi menggunakan baris arahan preprocessor atau arahan. Dalam program ini, arahan preprocessor diletakkan dalam program sumber sebelum program utama. Sebelum kod sumber melalui 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. Umumnya, makro ditulis dalam huruf besar.

Rajah 01: Program C ++ dengan makro

Menurut program di atas, Line 3 dan Line 4 menunjukkan makro. Apabila mengira kawasan tersebut, nilai Pi digantikan menggunakan makro yang ditakrifkan. Dalam baris 14, volume = kiub (nilai), preprocessor memperluaskan pernyataan sebagai volum = (nilai * nilai * nilai). Mencari kiub boleh ditulis sebagai fungsi, tetapi di sini ia ditulis menggunakan makro. Sekiranya terdapat pernyataan sebagai kelantangan = kiub (x+y), maka ia akan berkembang ke isipadu = (x+y * x+y * x+y).

Beberapa token pengaturcaraan mungkin mudah dikelirukan. Mereka boleh diganti menggunakan makro. e.g. #define dan &&, #define atau ||. Takrif makro juga boleh merangkumi ungkapan seperti #define Area 4*5.56.

Apakah fungsi dalam talian?

Apabila fungsi dipanggil, pengkompil mengambil sedikit masa untuk melaksanakannya. Sekiranya fungsi tidak begitu rumit, pengaturcara boleh menukar fungsi ke fungsi sebaris.  Rujuk program di bawah.

Rajah 02: Fungsi tanpa sebaris

Cetak_hello adalah fungsi mudah. Ia mencetak rentetan "hello" apabila fungsi dipanggil.  Masa pelaksanaan untuk fungsi itu adalah 0.187s. Apabila menggunakan kata kunci sebaris seperti berikut, masa pelaksanaan berkurang menjadi 0.064s.

Rajah 03: Fungsi sebaris

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

Apakah perbezaan antara fungsi makro dan sebaris?

Fungsi makro vs dalam talian

Makro adalah serpihan kod, yang merupakan arahan preprocessor yang dimasukkan pada permulaan program yang didahului oleh tanda hash. Fungsi sebaris adalah ciri peningkatan C ++ untuk meminimumkan masa pelaksanaan program.
Masa penilaian
Dalam makro, hujah dinilai setiap kali ia digunakan dalam program ini. Sebaris, hujah dinilai sekali.
Diperiksa oleh
Makro diperiksa oleh preprocessor. Fungsi sebaris diperiksa oleh pengkompil.
 Kata kunci
Marco menggunakan #define. Fungsi inline menggunakan kata kunci 'sebaris'.
Penggunaan
Makro boleh digunakan untuk menentukan pemalar, ungkapan, untuk penggantian teks literal dan untuk menentukan fungsi dll. Fungsi sebaris boleh digunakan untuk meminimumkan masa pelaksanaan program.
Penamatan
Makro ditamatkan dengan barisan baru. Fungsi sebaris ditamatkan dengan pendakap keriting pada akhir fungsi sebaris.
Titik penentuan
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 fungsi makro dan sebaris. Konsep ini digunakan dalam pengaturcaraan C ++. Perbezaan antara fungsi makro dan sebaris adalah bahawa makro diperiksa oleh preprocessor sementara fungsi sebaris diperiksa oleh pengkompil.

Rujukan:

1."Arahan Preprocessor."Cplusplus.com. Terdapat di sini 
2."C Fungsi Inline."Www.TutorialSpoint.com, tutorial titik, 19 mar. 2018. Terdapat di sini