ขนาดของ C ''int'' 2 ไบต์หรือ 4 ไบต์?

Khnad Khxng C Int 2 Bit Hrux 4 Bit



ขนาดของ ' นานาชาติ ” ในภาษาซีเป็นประเด็นร้อนที่มักสร้างความสับสนในใจผู้อ่าน ในขณะที่ C ได้รับการพัฒนาขนาดของ “ นานาชาติ ' เคยเป็น 2 ไบต์ แต่เมื่อเวลาผ่านไปและการเปิดตัวเวอร์ชันที่อัปเดต ขนาดโดยทั่วไปก็ถึงแล้ว 4 ไบต์ . อย่างไรก็ตาม มันไม่ใช่กฎที่ยากและรวดเร็ว เนื่องจากขนาดของ ' นานาชาติ ” อาจแตกต่างกันไปขึ้นอยู่กับคอมไพเลอร์และแพลตฟอร์มที่คุณใช้สำหรับการเข้ารหัส

หากคุณสับสนเกี่ยวกับขนาดของ “ นานาชาติ ” ไม่ว่าจะเป็น 2 ไบต์ หรือ 4 ไบต์ ให้ปฏิบัติตามหลักเกณฑ์ของบทความนี้

คือขนาดของ C “int” 2 Bytes หรือ 4 Bytes

ในช่วงแรก ๆ เมื่อมีการแนะนำภาษา C สิ่งหนึ่งที่อยู่ในใจของนักพัฒนาคือการทำให้ภาษานี้เรียบง่ายที่สุดเท่าที่จะเป็นไปได้ ขณะนั้นคอมพิวเตอร์ใช้หน่วยประมวลผลแบบ 16 บิต ทำให้ในขณะนั้นมีขนาดเท่ากับ “ นานาชาติ ” ได้รับการแก้ไขเป็น 2 ไบต์ เมื่อเวลาผ่านไป พลังการประมวลผลของระบบจะเพิ่มขึ้น และผู้พัฒนาก็เปลี่ยนขนาดของ “ นานาชาติ ” ใน C ถึง 4 ไบต์ เหตุผลนี้คือเพื่อให้โปรแกรมเมอร์ C สามารถใช้ค่าขนาดใหญ่และพัฒนาโปรแกรมพลังงานได้มากขึ้นในระบบ







ปัจจัยใดบ้างที่ส่งผลต่อขนาด 'int' ใน C

มีสามปัจจัยที่ส่งผลกระทบต่อ ' นานาชาติ ” ขนาดใน C ซึ่งมีดังนี้:



1: เดอะ โปรเซสเซอร์ของระบบ ส่งผลกระทบอย่างสูงต่อ “ นานาชาติ ' ขนาด. สำหรับสถาปัตยกรรม 32 บิต ค่าของ “ นานาชาติ ” ขนาดคือ 4 ไบต์ เหตุผลคือหนึ่งไบต์ประกอบด้วย 8 บิต ดังนั้นหากคุณคูณ 8 บิต/ไบต์ด้วย 4 ไบต์ ผลลัพธ์ที่ได้จะเป็น 32 บิต



2: เดอะ ระบบปฏิบัติการ รุ่นยังมีผลกระทบอย่างมากต่อ “ นานาชาติ ” ขนาดและระบบปฏิบัติการ 64 บิตจะใช้ 4 ไบต์ “ นานาชาติ ” ประเภท อย่างไรก็ตาม สิ่งนี้ยังคงขึ้นอยู่กับปัจจัยอื่นๆ เช่น คอมไพเลอร์หรือแพลตฟอร์มที่ใช้





3: เดอะ คอมไพเลอร์ ยังส่งผลกระทบต่อ “ นานาชาติ ” ขนาดใน C และมีคอมไพเลอร์ที่ช่วยให้โปรแกรมเมอร์ C สามารถกำหนดค่าขนาดของ “int” ตามที่พวกเขาเลือก

คอมไพเลอร์ที่แตกต่างกันอาจมีการใช้งานภาษา C ที่แตกต่างกัน หมายความว่าพวกเขาอาจมองว่า C “ นานาชาติ ประเภทข้อมูล ในทางที่แตกต่าง. โดยทั่วไปแล้ว คอมไพเลอร์อาจพิจารณาว่า “ นานาชาติ ” ในภาษาซีให้ได้ 2 ไบต์ หรือ 4 ไบต์ ในขนาด. ก 2 ไบต์ 'int' จะครอบครอง สอง ไบต์ของหน่วยความจำ โดยแสดงค่าที่สามารถจัดเก็บได้ -32768 ถึง 32767 . ในทางตรงกันข้าม ก 4 ไบต์ 'int' จะครอบครอง สี่ ไบต์ของหน่วยความจำ โดยแสดงค่าเป็น -2147483648 ถึง 2147483647 .



อย่างไรก็ตาม หากเราตรวจสอบขนาดของ “ นานาชาติ ” ในคอมไพเลอร์ C ++ ที่ทันสมัย ​​ให้คำตอบแก่เรา:

#รวม
#รวม
#include

int หลัก ( int argc ถ่าน ** หาเรื่อง ) {
พิมพ์ฉ ( 'Int_MAX     :   %d \n ' , INT_MAX ) ;
พิมพ์ฉ ( 'int_MIN     :   %d \n ' , INT_MIN ) ;
กลับ 0 ;
}

ในโค้ดข้างต้น เรากำลังกำหนดขนาดของ ' นานาชาติ ” การใช้ฟังก์ชั่น int_MAX() และ int_MIN() ซึ่งแสดงให้เราเห็นว่าขนาดของ “ นานาชาติ ' เป็น 4 ไบต์ .

เอาต์พุต

คอมไพเลอร์สมัยใหม่ส่วนใหญ่ใช้ภาษาซีในลักษณะที่มีขนาดเท่ากับภาษาซี “int” คือ 4 ไบต์ . ที่กล่าวว่าคอมไพเลอร์บางตัวยังคงใช้ 2 ไบต์ 'int' ขนาด หมายความว่านักพัฒนาต้องแน่ใจว่าได้ตรวจสอบคอมไพเลอร์ที่ใช้อยู่เพื่อให้แน่ใจว่าโปรแกรมทำงานได้อย่างถูกต้อง

บทสรุป

ที่แน่นอน ขนาดของ C “int” ชนิดข้อมูลอาจแตกต่างกันไปตามคอมไพเลอร์ที่ใช้ โดยทั่วไปก็คือ 4 ไบต์ ทำให้สามารถจัดเก็บค่าได้หลากหลายมากขึ้น ที่กล่าวว่าคอมไพเลอร์บางตัวยังคงสามารถใช้ภาษา C ในลักษณะที่ ขนาดของ C “int” เป็น 2 ไบต์ ในที่สุดโปรแกรมเมอร์จะต้องตระหนักถึงคอมไพเลอร์ที่ใช้เพื่อกำหนดที่แน่นอน ขนาดของ C “int” .