【问题标题】:Do i need 'unsigned' keyword with uintXX_t?我需要带有 uintXX_t 的“无符号”关键字吗?
【发布时间】:2016-09-01 07:33:11
【问题描述】:

我刚刚发现了可以在 stdint.h / cstdint 中找到的固定大小类型。其中一些是“普通”类型,如 int32_t,而一些设计为无符号类型,如 uint64_t。 使用设计上未签名的类型时是否需要使用“未签名”关键字?

【问题讨论】:

  • 当你尝试它时会发生什么? (我知道答案,但你不知道而且应该这样做。)
  • 所以你知道 uint64_t 在 stdint.h 中,你打开这个文件了吗?打开它,你会明白 uint64_t 只不过是 unsigned long long int 的 typedef .. 如果你知道 typedef 是什么,你就可以回答你的问题了!
  • Java 程序员? 无符号类型没有什么异常。
  • @Shrikant - uint64_t 不需要是 unsigned long long。如果编译器将该类型定义为 64 位宽,则它可以是 unsigned long 甚至是 unsigned。 (我想它也可以是unsigned short,但这毫无意义,因为无论何时使用它都会转换为unsigned)。

标签: c++ c types unsigned


【解决方案1】:

您不需要使用unsigned,事实上,您不能使用它。

只能使用signedunsigned(也可以是longshort)关键字修改基本类型。

标准类型的别名不能使用这些关键字修改,包括固定宽度的别名。

如果你写unsigned int32_t,那么编译器会将其解析为一个类型为unsignedunsigned int 的简写)的变量,变量的名称将是int32_tunsigned int32_t variable_name 会是语法错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-15
    • 2011-06-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 2017-08-25
    相关资源
    最近更新 更多