Perbezaan Antara Fungsi Makro Dan Sebaris

Isi kandungan:

Perbezaan Antara Fungsi Makro Dan Sebaris
Perbezaan Antara Fungsi Makro Dan Sebaris
Anonim

Perbezaan Utama - Fungsi Makro vs Sebaris

Makro adalah pecahan 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 penyusun.

Makro disertakan pada awal program yang didahului oleh tanda hash. Apabila terdapat nama makro dalam program, ia digantikan dengan kandungan makro.

KANDUNGAN

1. Gambaran Keseluruhan dan Perbezaan Utama

2. Apa itu Makro

3. Apa itu Fungsi Inline

4. Perbandingan Berdampingan - Fungsi Makro vs Sebaris dalam Bentuk Jadual

5. Ringkasan

Apa itu Makro?

Praprosesor adalah program yang memproses kod sumber sebelum melewati penyusun. Ia beroperasi menggunakan baris arahan preprocessor atau arahan. Dalam program tersebut, arahan preprocessor diletakkan di program sumber sebelum program utama. Sebelum kod sumber melalui penyusun, ia diperiksa oleh preprocessor untuk arahan preprocessor. Arahan preprocessor mempunyai simbol #. Tidak seperti pernyataan lain, ia tidak berakhir dengan titik koma. Satu jenis arahan preprocessor adalah makro. Umumnya, makro ditulis dengan huruf besar.

Perbezaan Antara Fungsi Makro dan Sebaris
Perbezaan Antara Fungsi Makro dan Sebaris

Gambar 01: Program C ++ dengan Makro

Menurut program di atas, baris 3 dan baris 4 menunjukkan makro. Semasa mengira luas, nilai PI diganti menggunakan makro yang ditentukan. Pada baris 14, isipadu = CUBE (nilai), preprocessor memperluas pernyataan sebagai volume = (nilai * nilai * nilai). Mencari kiub boleh ditulis sebagai fungsi, tetapi di sini ia ditulis menggunakan makro. Sekiranya terdapat penyataan sebagai isipadu = CUBE (x + y), maka ia akan berkembang menjadi kelantangan = (x + y * x + y * x + y).

Beberapa token pengaturcaraan mungkin salah taip. Ia boleh diganti dengan menggunakan makro. contohnya #define AND &&, #define ATAU ||. Definisi makro juga boleh merangkumi ungkapan seperti #define AREA 4 * 5.56.

Apakah Fungsi Inline?

Apabila fungsi dipanggil, penyusun memerlukan sedikit masa untuk melaksanakannya. Sekiranya fungsinya tidak terlalu kompleks, pengaturcara dapat mengubah fungsi tersebut menjadi fungsi sebaris. Rujuk program di bawah.

Perbezaan Antara Fungsi Makro dan Sebaris Gambar 2
Perbezaan Antara Fungsi Makro dan Sebaris Gambar 2

Gambar 02: Fungsi tanpa sebaris

Print_hello adalah fungsi mudah. Ia mencetak rentetan "Hello" ketika fungsi dipanggil. Masa pelaksanaan untuk fungsi tersebut ialah 0.187s. Apabila menggunakan kata kunci sebaris seperti berikut, masa pelaksanaan berkurang menjadi 0.064s.

Perbezaan Utama Antara Fungsi Makro dan Sebaris
Perbezaan Utama Antara Fungsi Makro dan Sebaris

Gambar 03: Fungsi sebaris

Oleh itu, dengan menggunakan kata kunci sebaris, masa pelaksanaan akan berkurang. Fungsi sebaris mungkin tidak berfungsi jika terdapat gelung, beralih pernyataan dan jika fungsi tersebut mengandungi pemboleh ubah statik atau fungsi rekursif.

Apakah Perbezaan Antara Fungsi Makro dan Inline?

Artikel Diff Tengah sebelum Jadual

Fungsi Makro vs Sebaris

Makro adalah pecahan kod, yang merupakan arahan preprocessor yang disertakan pada awal program yang didahului oleh tanda hash. Fungsi sebaris adalah ciri peningkatan C ++ untuk meminimumkan masa pelaksanaan program.
Masa Penilaian
Secara makro, argumen dinilai setiap kali digunakan dalam program. Secara sebaris, hujah dinilai sekali.
Diperiksa oleh
Makro diperiksa oleh preprocessor. Fungsi sebaris diperiksa oleh penyusun.
Kata kunci
Marco menggunakan #define. Fungsi sebaris menggunakan kata kunci 'sebaris'.
Penggunaan
Makro boleh digunakan untuk menentukan pemalar, ekspresi, untuk penggantian teks literal dan untuk menentukan fungsi dll. Fungsi sebaris dapat digunakan untuk meminimumkan waktu pelaksanaan program.
Penamatan
Makro berakhir dengan barisan baru. Fungsi sebaris berakhir dengan pendakap keriting pada akhir fungsi sebaris.
Titik Takrifan
Seorang Marco ditentukan pada awal program. Fungsi sebaris boleh berada di dalam atau di luar kelas.

Ringkasan - Fungsi Makro vs Sebaris

Artikel ini membincangkan perbezaan antara Fungsi Makro dan Inline. Konsep-konsep ini digunakan dalam pengaturcaraan C ++. Perbezaan antara Fungsi Makro dan Inline adalah bahawa makro diperiksa oleh preprocessor sementara fungsi sebaris diperiksa oleh penyusun.

Disyorkan: