Bagikan melalui


Fungsi inline

Kata inline kunci adalah penentu fungsi yang memberi tahu pengkompilasi untuk mengganti kode dalam definisi fungsi untuk setiap instans panggilan fungsi.

Keterangan

Penggantian kode sejajar hanya terjadi atas arahan pengompilasi. Misalnya, pengompilasi tidak akan menyejajarkan fungsi jika alamatnya diambil atau jika terlalu besar untuk disejajarkan. Saat pengompilasi tidak sejajar dengan fungsi yang ditentukan dalam file header, pengompilasi ditandai untuk pembuat link untuk menghindari pelanggaran aturan satu definisi (ODR).

Agar fungsi dianggap sebagai kandidat untuk penyejajaran, fungsi harus menggunakan definisi fungsi gaya baru dengan tanda tangan yang mendeklarasikan jenis pengembalian dan jenis parameter apa pun.

Gunakan formulir ini untuk menentukan fungsi sejajar:

inline definisi fungsi

Fungsi sejajar menghasilkan kode yang lebih cepat dan terkadang lebih kecil daripada panggilan fungsi yang setara:

  • Fungsi sejajar menghemat waktu yang diperlukan untuk menyiapkan tumpukan untuk argumen dan nilai yang dikembalikan, dan waktu untuk menjalankan lompatan dan pengembalian panggilan fungsi.

  • Bahkan saat diulang beberapa kali, fungsi sejajar kecil, mungkin tiga baris atau kurang, membuat lebih sedikit kode daripada panggilan fungsi yang setara karena pengompilasi tidak menghasilkan kode untuk menangani argumen dan nilai yang dikembalikan.

  • Pengompilasi dapat mengoptimalkan fungsi sejajar yang dihasilkan dengan cara yang tidak tersedia untuk fungsi normal. Pengompilasi biasanya tidak melakukan optimalisasi di antara beberapa prosedur berbeda.

Jangan keliru dengan fungsi yang menggunakan kode perakit sejajar inline. Untuk informasi selengkapnya tentang perakit sejajar, lihat Perakit sejajar.

Khusus Microsoft

Microsoft juga mendukung __inline dan __forceinline kata kunci untuk memberi tahu pengkompilasi untuk mengganti kode dalam definisi fungsi untuk setiap instans panggilan fungsi. Kata __inline kunci adalah sinonim untuk inline. Kata __forceinline kunci memberi tahu pengkompilasi untuk melonggarkan heuristik apakah akan menginline fungsi, meskipun tidak menjamin fungsi akan di-inlin.

Untuk kompatibilitas dengan versi sebelumnya, _inline dan _forceinline merupakan sinonim untuk __inline dan __forceinline, masing-masing, kecuali opsi /Za pengompilasi (Nonaktifkan ekstensi bahasa) ditentukan.

AKHIR khusus Microsoft

Lihat juga

inline, , __inline__forceinline