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!