【问题标题】:invalid narrowing conversion from (int) to (short) error从 (int) 到 (short) 错误的无效缩小转换
【发布时间】:2022-01-21 03:36:46
【问题描述】:

我在两个(短)m_nScreen 中都遇到了错误。

这是创建控制台窗口的代码,每当我尝试运行它时,都会出错。我得到的错误是“从(int)到(short)的无效缩小转换”

        m_rectWindow = { 0, 0, (short)m_nScreenWidth - 1, (short)m_nScreenHeight - 1 };

【问题讨论】:

  • 请不要纯文本图片!!
  • 我的错,我还在学习堆栈溢出的技巧,哈哈
  • 所以请发布格式正确的错误文本(通常因为代码标记提供最易读的结果)。还有一个minimal reproducible example,用最少的代码重现这些错误。
  • 好的,我刚刚留下了会产生错误的代码。这样更好吗?
  • 更改为(short)(m_nScreenWidth - 1)

标签: c++ type-conversion type-narrowing


【解决方案1】:

(short)m_nScreenHeight - 1 缩小 m_nScreenHeight 只是为了在减去 1 之前再次扩大它,这是一个 int - 因此是无用的缩小。 @M.M.

相反,减去然后缩小差异。

// (short)m_nScreenHeight - 1
(short)(m_nScreenHeight - 1)

m_nScreenWidth 也一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多