保证C数据类型的最小大小/范围

vai*_*dil 3 c variables

我已经找到了这个问题的不同答案,我知道必须有一个确定的答案.C中四种主要数据类型的最小分配内存大小是多少?int,double,float,和char是我在想什么的.这些signedunsigned类型是否以任何方式改变尺寸?

Sea*_*ner 8

ANSI C为各种原始数据类型定义了以下大小.

  • 烧焦
    • 最小签名范围:-128 .. 127
    • 最小无符号范围:0 .. 255
    • 可以更大,但无论大小,sizeof(char)== 1
    • sizeof(unsigned char)== 1
    • 最小签名范围:-32768 .. 32767
    • 最小无符号范围:0 .. 65535
    • 可以更大
    • 最小签名范围:-2147483648 .. 2147483647
    • 最小无符号范围:0 .. 4294967295
    • 可以更大
  • INT
    • 必须具有与短路相同的范围
    • 可以具有相同的范围
    • 不能有一个大于一个长的范围
    • short <= int,int <= long,但short <long

对浮点数和双精度数有更多规则,但通常,浮点数的范围<=双精度范围(对于现代机器---浮点数是4个字节,双精度数是8).