【问题标题】:Implicit integer conversion in C99 vs static code checkerC99 中的隐式整数转换与静态代码检查器
【发布时间】:2017-06-01 08:42:52
【问题描述】:

我在 C99 代码中使用了类似以下的内容:

 uint64_t x = 1000ULL * (5U * 1000U);

我假设U 总是意味着unsigned int

我的静态代码检查器现在在这里抱怨隐式类型转换,这是正确的。但是,它并没有抱怨 unsigned long longunsigned int。它抱怨unsigned char vs unsigned short

所以我的问题是: 上面的这些文字是否可以解释为 C99 中的 unsigned long longunsigned int 以外的其他内容(尤其是更小)?

【问题讨论】:

    标签: integer c99 implicit-conversion literals suffix


    【解决方案1】:

    不,在 C99 或任何其他版本的 C 标准常量中没有 U 后缀始终是无符号的,L 的数量为您提供intlonglong long 的等级。

    【讨论】:

      猜你喜欢
      • 2011-02-12
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 2014-11-15
      • 2014-06-20
      • 2021-06-11
      • 2022-08-10
      相关资源
      最近更新 更多