2013-03-19 123 views
6

在下面的函数:C中的'short'数据类型是什么?

void AddWordData(FILE* dataFile, short word, int* dc) 
{ 
    fprintf(dataFile, "%06o\n", word); 
    ++(*dc); 
} 

功能越来越短的类型。 我在网上做了一些搜索,但发现只有短整型。 当一个函数变得简短时,它意味着什么? 它是什么数据类型?

+2

与short int相同。 – 2013-03-19 17:01:27

+0

另一个问题出现在什么时候,在写入“%06o \ n”时究竟打印了什么 – Yuval 2013-03-19 17:26:20

+2

'%06o \ n' 这将在'octal'中添加6个填充'0'并打印' \ n'')。 – 2013-03-19 17:28:59

回答

14

shortshort int的简称。它们是同义词。 short,short int,signed shortsigned short int都是相同的数据类型。到底有多少位都在short依赖于编译器和系统,但它需要具有at least 16 bits

任何编译器符合标准也必须尊重相对于下面的限制值的范围内的任何特定类型可以接受。请注意,这些是较低的限制:实施可以自由地超过任何或所有这些。还要注意,字符的最小范围取决于字符是否被认为是有符号或无符号的。 ...短整型:-32767至+32767。

更多来自Wikipedia

整数类型的实际大小的实施而改变。唯一的保证是long long不小于long,不小于int,不小于short。此外,int应该是目标处理器最有效的整数类型。这允许很大的灵活性:例如,所有类型都可以是64位。然而,只有几种不同的整数宽度方案(数据模型)是流行的,并且由于数据模型定义了不同程序之间的通信方式,所以在给定的操作系统应用程序接口中使用统一的数据模型[3]。实际上应该注意的是,char通常是8位大小,short通常是16位大小,long通常是32位大小(同样是无符号字符,无符号短符号和无符号长符号)。例如,对于像90年代的Sun0S 4 Unix,Microsoft MSDOS,现代Linux以及用于嵌入式8位PIC单片机的Microchip MCC18这样的平台,情况也是如此。