ฉันมีปัญหาในการทำความเข้าใจสิ่งที่เป็นวัตถุประสงค์ที่แน่นอนของการสร้างshort
, int
และlong
ชนิดข้อมูลใน C?
เหตุผลที่ผมถามคือมันไม่ได้ดูเหมือนขนาดของพวกเขาจะกระโดด - พวกเขาอาจจะมีขนาดใดตราบใดที่short
มีขนาดเล็กกว่าint
เช่น
ในสถานการณ์ใดที่คุณควรใช้unsigned int
หรือunsigned long
ตัวอย่างเช่น a แทนsize_t
เมื่อคุณทำเช่นนั้นจะไม่มีความหวังของความเข้ากันได้ของไบนารี?
(หากคุณไม่ทราบขนาดคุณจะรู้ได้อย่างไรว่าจะเลือกขนาดไหน)
sizeof(short) == 2 * sizeof(char)
หรือคล้ายกัน?
sizeof(char) == sizeof(short)
และมันสมเหตุสมผล แต่น่าเสียดายที่มีวิธีการระบุชนิดจำนวนหนึ่งว่าวิธีการที่พวกเขาจะพอดีไม่มีทุก แพลตฟอร์มที่เป็นไปได้และที่มีอยู่
<stdint.h>