Amaran daripada Pemalar Berbilang Aksara
Mengapakah kod berikut menghasilkan amaran?
int waveHeader = 'EVAW';
Punca:
Amaran itu berpunca daripada piawaian C (§6.4.4.4/10) kekaburan dalam mentafsir nilai pemalar berbilang aksara.
Pemalar Berbilang Aksara:
Pemalar berbilang aksara mewakili nilai yang merangkumi lebih daripada satu aksara dalam integer. Contohnya, menggunakan petikan tunggal, seseorang boleh menyimpan sehingga empat aksara ASCII dalam integer 32-bit atau lapan dalam integer 64-bit.
Isu Mudah Alih:
Walau bagaimanapun, memandangkan piawaian tidak menyatakan susunan aksara ini dibungkus, menggunakan pemalar berbilang aksara dalam kod mudah alih adalah bermasalah. Ini boleh membawa kepada tingkah laku yang tidak dapat diramalkan pada platform atau pengkompil yang berbeza.
Pengesyoran:
Untuk kod mudah alih, adalah disyorkan untuk mengelak daripada menggunakan pemalar berbilang aksara dengan jenis integer. Sebaliknya, pertimbangkan untuk memberikan nilai berangka yang bermakna kepada pemalar atau menggunakan pembolehubah const.
Atas ialah kandungan terperinci Mengapa Menggunakan `int waveHeader = 'EVAW';` Menjana Amaran Malar Berbilang Aksara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!