Perbezaan antara fungsi sebaris C++ dan penunjuk fungsi

WBOY
Lepaskan: 2024-04-16 14:15:01
asal
545 orang telah melayarinya

Fungsi sebaris terus dikembangkan tanpa memanggil, manakala penunjuk fungsi menyimpan pembolehubah yang menunjuk ke alamat fungsi, membenarkan panggilan fungsi tidak langsung.

C++ 内联函数与函数指针的区别

Perbezaan antara fungsi sebaris dan penunjuk fungsi dalam C++

Apakah fungsi sebaris?

Fungsi sebaris ialah fungsi yang dikembangkan terus oleh pengkompil pada masa penyusunan. Ini bermakna bahawa panggilan ke fungsi sebaris tidak menghasilkan panggilan fungsi sebenar, sebaliknya kod fungsi dimasukkan terus ke lokasi di mana ia dipanggil.

Sintaks:

inline 返回值类型 函数名(参数列表) {
    // 函数体
}
Salin selepas log masuk

Kelebihan:

  • Elakkan overhed panggilan fungsi dan tingkatkan prestasi.
  • Kod lebih ringkas dan mudah dibaca.

Apakah penunjuk fungsi?

Penunjuk fungsi ialah pembolehubah yang menyimpan alamat fungsi. Ia membolehkan kami memanggil fungsi secara tidak langsung.

Sintaks: Jenis

类型 (*函数名)(参数列表);
Salin selepas log masuk

mewakili jenis nilai pulangan penuding fungsi, manakala senarai parameter mewakili jenis parameter formal penuding fungsi.

Kelebihan:

  • Memberi fleksibiliti dalam panggilan fungsi.
  • Membolehkan kami menukar fungsi semasa runtime.

Praktikal Case

Inline Fungsi:

Menghibitkan fungsi sebaris berikut untuk mengira nombor fibonacci:

inline int fibonacci(int n) {
    if (n == 0) {
        return 0;
    } else if (n == 1) {
        return 1;
    } else {
        return fibonacci(n - 1) + fibonacci(n - 2);
    }
}
Salin selepas log masuk
e

function Pointer:

Memandang pengiraan berikut fibonacci menggunakan penunjuk fungsi kod untuk nombor tersebut untuk nombor tersebut untuk nombor tersebut untuk nombor tersebut untuk nombor tersebut :

int (*fib_ptr)(int);

int fibonacci_using_ptr(int n) {
    if (n == 0) {
        return 0;
    } else if (n == 1) {
        return 1;
    } else {
        return fib_ptr(n - 1) + fib_ptr(n - 2);
    }
}

int main() {
    fib_ptr = fibonacci;
    cout << fibonacci_using_ptr(10) << endl; // 输出:55
    return 0;
}
Salin selepas log masuk

Dalam kes ini, penunjuk fungsifib_ptr 被分配给内联函数 fibonacci, yang kemudiannya digunakan untuk memanggil fungsi secara tidak langsung.

Atas ialah kandungan terperinci Perbezaan antara fungsi sebaris C++ dan penunjuk fungsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan