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