c 中的 unsigned short int 和 unsigned short decleration 之间有区别吗?如果有,请问是什么?我尝试在网上寻找,但找不到任何有价值的东西。
unsigned short int x1;
unsigned short x2;
最后,如果有区别,我该如何分别将它们相互转换?
来自C11 [PDF](省略了无关部分)(强调我的):
6.7.2.2:
在每个声明的声明说明符中,以及每个结构声明和类型名称的说明符-限定符列表中,至少应给出一个类型说明符。每个类型说明符列表应为以下多重集之一(当每个项目有多个多重集时,以逗号分隔);类型说明符可以以任何顺序出现,可能与其他声明说明符混合。
- ...
short
,signed short
,short int
, 或signed short int
unsigned short
, 或者unsigned short int
- ...
6.7.2.5:
每个逗号分隔的多重集都指定相同的类型......
只是使用short
是一种速记(没有双关语)的写作方式short int
。只是 along
是 的简写long int
。
两者没有区别。
第二个被认为是一个 int 并且被简单地省略。
它们是同义词。如果你的编译器对它们做了不同的事情,那就坏了。
没有区别。试试sizeof
运营商:
main()
{
unsigned short int x1;
unsigned short x2;
printf("%d/%d\n", sizeof x1, sizeof x2);
}