Perbedaan antara fungsi makro dan inline

Perbedaan antara fungsi makro dan inline

Perbedaan Utama - MACro vs inline Fungsi
 

Makro adalah fragmen kode, yang merupakan arahan preprocessor. Fungsi inline adalah fitur peningkatan C ++ untuk meminimalkan waktu eksekusi suatu program. Oleh karena itu, perbedaan utama Antara fungsi makro dan inline adalah itu Makro diperiksa oleh preprocessor saat fungsi inline diperiksa oleh kompiler.

Makro termasuk di awal program yang didahului oleh tanda hash. Ketika ada nama makro dalam program, itu digantikan oleh konten makro.

ISI

1. Ikhtisar dan Perbedaan Utama
2. Apa itu makro
3. Apa fungsi inline
4. Perbandingan berdampingan - fungsi makro vs inline dalam bentuk tabel
5. Ringkasan

Apa itu makro?

Preprocessor adalah program yang memproses kode sumber sebelum melewati kompiler. Ini beroperasi menggunakan baris perintah preprocessor atau arahan. Dalam program ini, arahan preprosesor ditempatkan dalam program sumber sebelum program utama. Sebelum kode sumber melewati kompiler, itu diperiksa oleh preprocessor untuk arahan preprocessor. Arahan preprocessor memiliki simbol #. Tidak seperti pernyataan lainnya, mereka tidak berakhir dengan titik koma. Salah satu jenis Petunjuk Preprocessor adalah makro. Secara umum, makro ditulis dalam huruf kapital.

Gambar 01: program C ++ dengan makro

Menurut program di atas, baris 3 dan baris 4 menunjukkan makro. Saat menghitung area tersebut, nilai PI diganti menggunakan makro yang ditentukan. Pada baris 14, volume = kubus (nilai), preprocessor memperluas pernyataan sebagai volume = (nilai * nilai * nilai). Menemukan kubus dapat ditulis sebagai fungsi, tetapi di sini ditulis menggunakan makro. Jika ada pernyataan sebagai volume = kubus (x+y), maka itu akan diperluas ke volume = (x+y * x+y * x+y).

Beberapa token pemrograman mungkin dengan mudah disengaja. Mereka dapat diganti menggunakan makro. e.G. #define dan &&, #define atau ||. Definisi makro juga dapat mencakup ekspresi seperti #Define Area 4*5.56.

Apa fungsi inline?

Ketika suatu fungsi dipanggil, kompiler membutuhkan waktu untuk menjalankannya. Jika fungsinya tidak terlalu kompleks, programmer dapat mengonversi fungsi ke fungsi inline.  Rujuk program di bawah ini.

Gambar 02: Fungsi tanpa inline

Print_hello adalah fungsi sederhana. Itu mencetak string "halo" saat fungsinya disebut.  Waktu eksekusi untuk fungsi itu adalah 0.187S. Saat menggunakan kata kunci inline sebagai berikut, waktu eksekusi berkurang menjadi 0.064S.

Gambar 03: Fungsi inline

Oleh karena itu, dengan menggunakan kata kunci inline, waktu eksekusi berkurang. Fungsi inline mungkin tidak berfungsi jika ada loop, sakelar pernyataan dan jika fungsi berisi variabel statis atau fungsi rekursif.

Apa perbedaan antara fungsi makro dan inline?

Fungsi makro vs inline

Makro adalah fragmen kode, yang merupakan arahan preprocessor yang termasuk pada awal program yang didahului oleh tanda hash. Fungsi inline adalah fitur peningkatan C ++ untuk meminimalkan waktu eksekusi suatu program.
Waktu evaluasi
Dalam makro, argumen dievaluasi setiap kali digunakan dalam program. Secara inline, argumen dievaluasi sekali.
Diperiksa oleh
Makro diperiksa oleh preprocessor. Fungsi inline diperiksa oleh kompiler.
 Kata kunci
Marco menggunakan #define. Fungsi inline menggunakan kata kunci 'inline'.
Penggunaan
Makro dapat digunakan untuk mendefinisikan konstanta, ekspresi, untuk substitusi teks literal dan untuk mendefinisikan fungsi dll. Fungsi inline dapat digunakan untuk meminimalkan waktu eksekusi program.
Penghentian
Makro berakhir dengan baris baru. Fungsi inline berakhir dengan penjepit keriting di akhir fungsi inline.
Titik menentukan
Marco didefinisikan di awal program. Fungsi inline dapat berada di dalam atau di luar kelas.

Ringkasan - MaCro vs inline Fungsi

Artikel ini membahas perbedaan antara fungsi makro dan inline. Konsep -konsep ini digunakan dalam pemrograman C ++. Perbedaan antara fungsi makro dan inline adalah bahwa makro diperiksa oleh preprocessor saat fungsi inline diperiksa oleh kompiler.

Referensi:

1.“Arahan Preprocessor.”Cplusplus.com. Tersedia disini 
2.“C inline fungsi.”WWW.TutorialSpoint.com, Tutorials Point, 19 Mar. 2018. Tersedia disini