代码之家  ›  专栏  ›  技术社区  ›  Soner from The Ottoman Empire

uintX和intX类型的打印保证

  •  0
  • Soner from The Ottoman Empire  · 技术社区  · 6 年前

    我想知道如果我使用 uint16_t std::cout << ,打印为数字而不是 char . 我在一些辅导网站上看到 uint8_t int8_t 印刷品不能保证是字符或数字。但是,我找不到标准的任何条款或报价。我是否需要始终铸造,以确保获得所有这些类型的期望输出?

    0 回复  |  直到 6 年前
        1
  •  1
  •   Nicol Bolas    5 年前

    如果 uint8_t 由实现定义,然后 uint16_t 不能是 char 烧焦 被定义为最小的可寻址值; sizeof(char) 显式为1。

    因为这些可选大小的类型需要 指定大小的, sizeof(uint16_t) 必须大于 sizeof(uint8_t) 尺寸(单位:8) 不能小于 , 尺寸(uint16) 烧焦 .

    单位8 但是 uint16_t 定义,则所有下注都将关闭。但是如果你的代码已经假设 存在,那么你也可以假设 uint16_t 不是