unsigned short int和unsigned short之间的区别

时间:2013-04-29 16:17:28

标签: c unsigned

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

unsigned short int x1;
unsigned short x2;

最后,如果有差异,我怎么能分别把它们互相投射?

5 个答案:

答案 0 :(得分:10)

C11 [PDF](省略不相关的部分)(强调我的):

6.7.2.2:

  

每个声明中的声明说明符中至少应给出一个类型说明符,   并在每个结构声明和类型名称的说明符限定符列表中。每个清单   类型说明符应为以下多重集合之一(以逗号分隔,在那里   每个项目超过一个多个集合);类型说明符可能以任何顺序出现   与其他声明说明符混合。

     
      
  • ...
  •   
  • shortsigned shortshort intsigned short int
  •   
  • unsigned shortunsigned short int
  •   
  • ...
  •   

6.7.2.5:

  

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

答案 1 :(得分:3)

仅使用short是一种写作short int的简写(无双关语)方式。只有longlong int的简写。

答案 2 :(得分:3)

两者没有区别。

第二个被认为是一个int,只是省略了。

答案 3 :(得分:2)

他们是同义词。如果你的编译器做了与它们不同的事情,它就会被打破。

答案 4 :(得分:-2)

没有区别。试试sizeof运算符:

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

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