Rumah >pembangunan bahagian belakang >C++ >Bilakah Huruf Integer Menjadi 64-Bit?

Bilakah Huruf Integer Menjadi 64-Bit?

Barbara Streisand
Barbara Streisandasal
2024-12-09 05:55:10421semak imbas

When Do Integer Literals Become 64-Bit?

Literal Integer 64-Bit dalam Konteks Int Lalai

Dalam pengaturcaraan, literal integer mewakili nombor bulat. Biasanya, literal ini diberikan kepada jenis data integer lalai, yang biasanya lebarnya 32 bit. Walau bagaimanapun, keadaan tertentu boleh menyebabkan literal integer yang lebih besar dicipta secara lalai.

Salah satu kes sedemikian ialah apabila literal integer melebihi julat jenis integer lalai. Contohnya, dalam C dan C , literal tanpa lampiran "L" mempunyai jenis yang boleh mewakili nilainya. Jika nilai terlalu besar untuk jenis int, ia akan dinaikkan taraf kepada jenis int panjang atau jenis int panjang panjang.

Promosi ini menyelesaikan isu limpahan yang sebaliknya akan berlaku jika literal dibuang sebagai 32- bit integer. Piawaian C 11 menentukan tingkah laku ini dalam [lex.icon] ¶2, menyatakan bahawa jenis literal akan menjadi yang pertama dalam senarai yang diberikan di mana nilai boleh diwakili:

int
long int
long long int

Begitu juga, C99 mentakrifkan ini mekanisme kenaikan pangkat dalam §6.4.4.1. Ini memastikan bahawa walaupun literal integer melebihi julat integer lalai, ia akan ditukar secara tersirat kepada jenis yang lebih besar, membolehkan ia diwakili dengan betul.

Dalam kes yang jarang berlaku, literal integer mungkin masih terlalu besar untuk jenis integer yang tersedia. Dalam kes itu, kedua-dua C99 dan C 11 mewajibkan ralat kompilasi, menunjukkan bahawa literal tidak boleh diwakili oleh sebarang jenis yang disokong. Ini menghalang isu masa jalan yang disebabkan oleh limpahan integer.

Atas ialah kandungan terperinci Bilakah Huruf Integer Menjadi 64-Bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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