2013-04-29 68 views
7

在c中unsigned short int和unsigned short decleration之间是否有区别,如果是这样,请问它是什么?我试着在网上寻找,但找不到任何有价值的东西。unsigned short int和unsigned short之间的区别

unsigned short int x1; 
unsigned short x2; 

最后,如果有差异,我该怎么把它们分别给彼此?

+1

没有区别。 – Daniel 2013-04-29 16:31:26

回答

10

C11 [PDF](不相关部分省略)(重点煤矿):

6.7.2.2:

至少一个类型说明应在声明指定在每个声明, 并且在给予每个结构声明和类型名称中的说明符限定符列表。 类型说明符的每个列表应该是以下多个集合中的一个(用逗号分隔,当 每个项目有多个多集时);类型说明符可能以任何顺序出现,可能与其他声明说明符混合使用 。

  • ...
  • shortsigned shortshort int,或者signed short int
  • unsigned short,或unsigned short int
  • ...

6.7.2.5:

每个逗号分隔的多集的指定相同类型 ...

+0

重要的是要注意,它们相同的事实并不能保证它们的大小。它们可以是2个字节,4个字节,100个字节,不管。只要它们不超过“int”。 – Daniel 2013-04-29 16:33:09

+2

如果您想链接到更方便的C11在线副本,请访问:http:// port70。net /〜nsz/c/c11/n1570.html – 2013-04-29 16:33:33

+0

我会在评论中保留链接,但会在答案中保留PDF的链接。关于pdf的好处是您可以下载并将其放置在桌面上,并且更易于访问。虽然有良好的联系,但对报价来说绝对更好。 – Shahbaz 2013-04-29 16:49:15

3

只需使用short是一种简短的(无双关语意图的)写作方式short int。只需long就是long int的简称。

2

它们是同义词。如果你的编译器做了与他们不同的事情,那就是坏了。

-2

没有区别。试试sizeof运营商:

main() 
{ 
    unsigned short int x1; 
    unsigned short x2; 

    printf("%d/%d\n", sizeof x1, sizeof x2); 
} 
+6

就像我在另一个评论中所说:即使它们是相同的(并且你的回答是正确的),你也不能提供一个例子来证明某件事。 11是素数,但并不能使所有奇数都为素数。顺便说一句,'int'和'unsigned int'也具有相同的大小,但它们不相同。 – Shahbaz 2013-04-29 16:22:14

+0

此外,类型的大小可以在不同的实现之间改变。 – effeffe 2013-04-29 16:52:52

3

两者没有差异。

第二个被认为是一个int并且简单地被省略。

相关问题