Rumah > pembangunan bahagian belakang > C++ > Mengapa Fungsi dan Penunjuk Data Tidak Sentiasa Serasi dalam C/C ?

Mengapa Fungsi dan Penunjuk Data Tidak Sentiasa Serasi dalam C/C ?

DDD
Lepaskan: 2024-12-05 02:12:13
asal
426 orang telah melayarinya

Why Aren't Function and Data Pointers Always Compatible in C/C  ?

Mengapa Fungsi dan Penunjuk Data Tidak Serasi dalam C/C

Walaupun menukar antara penuding data dan penuding fungsi secara amnya berjaya pada kebanyakan platform, keserasian tidak dijamin. Ini menimbulkan persoalan: bukankah keserasian itu sepatutnya mudah memandangkan kedua-duanya menunjuk kepada alamat memori?

Penjelasan terletak pada seni bina yang digunakan oleh sistem pengkomputeran. C/C tidak mengehadkan dirinya kepada seni bina tertentu dan membenarkan fleksibiliti dalam cara ingatan diurus. Sesetengah seni bina, seperti seni bina Harvard, mengekalkan ruang memori yang berasingan untuk kod dan data. Sebaliknya, seni bina Von Neumann menyimpan kod dan data dalam memori yang sama.

Dalam kes seni bina Von Neumann, di mana kod dan data berada dalam ruang yang sama, menukar antara penuding fungsi dan penuding data mungkin mungkin. Bagaimanapun, keserasian sebenar tidak boleh dipandang remeh. Dalam sistem yang membezakan antara dua ruang memori, seperti seni bina Harvard, penukaran akan gagal.

Atas ialah kandungan terperinci Mengapa Fungsi dan Penunjuk Data Tidak Sentiasa Serasi dalam C/C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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