c中的unsigned short int和unsigned short decleration之间是否有区别?如果是,请问它是什么?我尝试在线查找,但找不到任何有价值的东西。
unsigned short int x1;
unsigned short x2;
最后,如果有差异,我怎么能分别把它们互相投射?
答案 0 :(得分:10)
从C11 [PDF](省略不相关的部分)(强调我的):
6.7.2.2:
每个声明中的声明说明符中至少应给出一个类型说明符, 并在每个结构声明和类型名称的说明符限定符列表中。每个清单 类型说明符应为以下多重集合之一(以逗号分隔,在那里 每个项目超过一个多个集合);类型说明符可能以任何顺序出现 与其他声明说明符混合。
- ...
short
,signed short
,short int
或signed short int
unsigned short
或unsigned short int
- ...
6.7.2.5:
每个逗号分隔的多重集都指定相同类型 ...
答案 1 :(得分:3)
仅使用short
是一种写作short int
的简写(无双关语)方式。只有long
是long 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);
}