Pemalar Statik Bukan Integral dalam Kelas dan Kegagalan Penyusunannya
Dalam C , cuba mentakrifkan ahli tetap statik dengan bukan kamiran jenis, seperti berganda, dalam kelas boleh mengakibatkan ralat penyusunan. Tingkah laku ini mungkin kelihatan membingungkan, kerana jenis integral (mis., int, tidak bertanda) dibenarkan dalam konteks ini.
Punca percanggahan ini terletak pada cara pengkompil mengendalikan pemalar. Untuk jenis kamiran, pengkompil biasanya menyelaraskan pemalar di mana sahaja ia digunakan, menghapuskan keperluan untuk lokasi memori. Walau bagaimanapun, pemalar bukan kamiran, seperti dua kali ganda, biasanya memerlukan alamat memori semasa masa jalan.
Untuk memastikan ahli const statik dengan jenis bukan kamiran ditakrifkan dengan betul, adalah disyorkan untuk mengisytiharkannya dalam pengepala fail dan takrifkannya dalam fail sumber yang berasingan. Dengan berbuat demikian, takrifan muncul dalam unit terjemahan tunggal, menghalang takrifan berbilang.
Walaupun pengkompil boleh mengoptimumkan pemalar bukan kamiran pada tahap pengoptimuman yang lebih tinggi, seperti -O1 dalam g , mengisytiharkan dan mentakrifkan pemalar secara berasingan ialah masih merupakan pendekatan yang paling mudah alih untuk keserasian merentas platform.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mentakrifkan Pemalar Statik Bukan Integral dalam Kelas dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!