1

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

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

我假设U总是意味着unsigned int

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

所以我的问题是:上面的这些文字可以解释为C99 之外的unsigned long long其他东西(尤其是更小的东西)吗?unsigned int

4

1 回答 1

0

不,不是在 C99 或任何其他版本的 C 标准常量中,带有 th后缀的常量始终是无符号的,U并且数量L为您提供 rankint或。longlong long

于 2017-07-23T15:28:37.127 回答