【问题标题】:What does the "U" in c defines mean (i.e. #define FOO ((uint32_t)1000U)))c中的“U”定义是什么意思(即#define FOO((uint32_t)1000U)))
【发布时间】:2016-07-10 22:16:47
【问题描述】:

我认为这可能意味着未签名。但究竟有什么区别:

#define FOO ((uint32_t)1000U))   

#define FOO ((uint32_t)1000))

【问题讨论】:

  • 看来你需要更多地了解C中的整数文字。我建议你也看看0x1000u1000u0100u之间的区别。
  • 公平地说,除非您知道要搜索“literal”,否则试图从网络搜索中得出这个结果会......很有趣,而且可能不会很有成效。
  • @jdv 不是这样。谷歌搜索“C 中的 u 后缀”就足够了。
  • 嗯。 Google-Fu 分布不均。我永远不会选择这些词。
  • @jdv:感谢您的理解 - 我确实尝试过 google 搜索,但我没有成功...

标签: c-preprocessor unsigned


【解决方案1】:

根据this table,表示unsigned int类型的常量。相同的解释可以在here找到。

【讨论】:

  • 那为什么会有演员表呢?
  • @RadLexus 考虑sizeof(unsigned) == 2 的情况,如果没有转换为uint32_t,FOO 将只有2 个字节,这可能会导致各种细微的错误(尤其是在C++ 中)。一般来说,U 是多余的,如果你正在做演员,但反过来不是真的。
猜你喜欢
  • 1970-01-01
  • 2023-02-04
  • 2016-07-28
  • 2011-09-24
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多