Rumah >pembangunan bahagian belakang >C++ >Bolehkah Pengkompil Mengoptimumkan Panggilan `baru` dalam C ?
Bolehkah Pengkompil Menghapuskan Peruntukan Memori Timbunan?
Dalam C , operator baharu digunakan untuk memperuntukkan memori pada timbunan. Penyusun boleh mengoptimumkan kod, termasuk mengalih keluar pernyataan yang tidak perlu. Bolehkah penyusun menghapuskan peruntukan memori timbunan yang dibuat menggunakan baharu?
Gelagat Pengkompil
Penyelidikan menunjukkan bahawa penyusun berbeza mengendalikan peruntukan timbunan secara berbeza:
Kesahihan Pengoptimuman
Kesahihan pengoptimuman pengkompil adalah subjek perdebatan. Sesetengah berpendapat bahawa pengkompil tidak dibenarkan untuk mengoptimumkan panggilan baharu kerana mereka mungkin mempunyai tingkah laku yang boleh diperhatikan (cth., membuang pengecualian). Yang lain berpendapat bahawa mengoptimumkan panggilan baharu dibenarkan jika pengkompil boleh menjamin bahawa tiada tingkah laku yang boleh diperhatikan akan terjejas.
C 14 Standard
N3664: Menjelaskan Peruntukan Memori menjelaskan peraturan mengenai pengoptimuman pengkompil dan peruntukan memori. Ia membolehkan penyusun mengoptimumkan sekitar peruntukan memori dalam senario tertentu. Walau bagaimanapun, peruntukan tersebut telah dikritik kerana ia berpotensi melanggar kausalitas.
Pertimbangan Tambahan
Kesimpulan
Keupayaan pengkompil untuk mengoptimumkan memori timbunan peruntukan ialah isu kompleks yang melibatkan tingkah laku pengkompil, piawaian bahasa dan kemungkinan pengecualian. Walaupun sesetengah penyusun melaksanakan pengoptimuman ini berdasarkan N3664, kesahihannya kekal sebagai subjek perbincangan dan bergantung pada keadaan tertentu, termasuk standard C dan kehadiran pengagih memori tersuai.
Atas ialah kandungan terperinci Bolehkah Pengkompil Mengoptimumkan Panggilan `baru` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!