【问题标题】:Is there a difference between unsigned and unsigned int [duplicate]unsigned 和 unsigned int 之间有区别吗?
【发布时间】:2017-06-20 19:33:10
【问题描述】:

在C语言中,unsigned直接作为类型和unsigned int有区别吗?

更新: 这是this question 的副本,但另一个问题没有回答关于可能存在的小细节。感谢@EOF 指出位域中实现定义的行为。

【问题讨论】:

  • 不,类型是一样的。
  • 那里没有小细节?
  • 不,就像short vs short intlong vs long intint 在合格时是可选的。
  • @FSMaxB 参见 C11 标准草案 n1570:5 每个逗号分隔的多重集指定相同的类型,除了位域,它是实现定义的,说明符 int 是否指定与signed int 类型相同或与unsigned int 类型相同。 所以唯一的微妙之处在于位域。
  • @FSMaxB:编译器绝对对声明类型int的位域使用不同的符号。它是现实世界中遇到的实现定义行为的典型示例之一。例如,结构中的int i:1 可以初始化为.i = 1; 并因此将不等于 与1 进行比较:.i != 1 为真。当程序使用不同的编译器或针对不同的目标编译时,它还可以比较相等

标签: c unsigned unsigned-integer


【解决方案1】:

不,unsignedunsigned int 都指同一个类型。见cppreference/fundamental types:

【讨论】:

  • 这个列表是你创建的,或者它来自哪里?就目前而言,这是默认假设。在将其发布到世界之前,您是否已将其设为不受版权保护?
  • @alk:我认为 "See cppreference/fundamental_types:" 足以理解该列表来自 cppreference/fundamental 类型。标题还写着“cppreference screenshot”。
  • 有关许可,请参阅cppreference/FAQ
  • "许可" 谢谢。很高兴知道这一点。
猜你喜欢
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 2012-02-21
  • 2017-09-10
  • 2011-12-12
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多