在以下函数中:
void AddWordData(FILE* dataFile, short word, int* dc)
{
fprintf(dataFile, "%06o\n", word);
++(*dc);
}
该函数正在获得一个简短的类型。我在网上做了一些搜索,但只找到了short int。当一个函数得到一个短类型时是什么意思?它是什么数据类型?
short
是 的缩写short int
。它们是同义词。short
, short int
, signed short
, 和signed short int
都是相同的数据类型。a 中有多少位short
取决于编译器和系统,但至少需要 16 位:
任何符合标准的编译器还必须遵守以下关于任何特定类型可以接受的值范围的限制。请注意,这些是下限:实现可以自由地超过任何或所有这些。另请注意,char 的最小范围取决于 char 是否被视为有符号或无符号。... 短整数: -32767 到 +32767 。
更多来自维基百科:
整数类型的实际大小因实现而异。唯一的保证就是long long不小于long,long不小于int,不小于short。此外,int 应该是目标处理器最有效地使用的整数类型。这提供了很大的灵活性:例如,所有类型都可以是 64 位的。然而,只有几种不同的整数宽度方案(数据模型)是流行的,并且由于数据模型定义了不同程序的通信方式,因此在给定的操作系统应用程序接口中使用统一的数据模型。 [3]
在实践中应该注意,char 通常是 8 位大小,short 通常是 16 位大小,long 通常是 32 位大小(同样是 unsigned char、unsigned short 和 unsigned long)。例如,这适用于各种平台,如 1990 年代 Sun0S 4 Unix、Microsoft MSDOS、现代 Linux 和用于嵌入式 8 位 PIC 微控制器的 Microchip MCC18。
编辑:
LP64下(全64位非Windows操作系统):char为8位,short为16位,int为32位,long为64位,long long可能为128位。
Windows 保持 LLP64:char 为 8 位,short 为 16 位,int 为 32 位,long 为 32 位,long long 为 64 位。