Rumah > pembangunan bahagian belakang > C++ > Mengapa Saya Tidak Boleh Mentakrifkan Pemalar Statik Bukan Integral dalam Kelas dalam C?

Mengapa Saya Tidak Boleh Mentakrifkan Pemalar Statik Bukan Integral dalam Kelas dalam C?

Patricia Arquette
Lepaskan: 2024-11-19 09:29:02
asal
560 orang telah melayarinya

Why Can't I Define Non-Integral Static Constants in Classes in C  ?

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan