Jenis Huruf Integer Bukan int secara Lalai
Dalam pengaturcaraan, jenis literal integer biasanya diandaikan sebagai int. Walau bagaimanapun, terdapat kes di mana ini mungkin tidak berlaku.
Pertimbangkan kod C berikut:
for (i = 0; i < 10000000000; i++)
Walaupun 10000000000 literal tidak dilampirkan dengan akhiran 'L' (yang secara eksplisit menandakan jenis integer panjang), pengkompil mengiktiraf bahawa nilai ini melebihi julat 32-bit integer.
Menurut piawaian C99 dan C 11, jenis pemalar integer ditentukan oleh catatan pertama dalam Jadual 6 di mana nilainya boleh diwakili. Untuk pemalar perpuluhan tanpa akhiran, Jadual 6 menentukan jenis berikut dalam tertib menurun:
Oleh itu, dalam sampel kod yang diberikan, pengkompil mentafsir literal sebagai int panjang (atau int panjang panjang jika int panjang ialah 32 bit) untuk menampung nilainya yang besar.
Adalah penting untuk ambil perhatian bahawa literal "terlalu besar" biasanya mengakibatkan ralat penyusunan. Ini kerana nilai tidak boleh diwakili oleh mana-mana jenis yang dibenarkan.
Atas ialah kandungan terperinci Bilakah Integer Literal Bukan `int`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!