涉及变量移位的 if 语句 - 错误与否(更新)

if statement which involves bit shifting of variables - error or not (update )

我在这个论坛上问过,使用以下涉及给定 x 和 y 位移的 if 语句是否错误:

if (x<<y)

这个问题的最终答案是什么,上面写的语句不是任何类型的错误,也不是 运行-time 错误。

假设我们扩大该问题的范围并将上面的陈述改写为以下陈述:

if (x<<y) x++;

在这种情况下,它是否仍然没有任何类型的错误(包括 运行-time 错误)?

在没有任何上下文的情况下,无法判断此代码​​是否会出现 运行 时的错误:

if (x<<y) x++;

我们不知道 xy 的类型或值,也不知道代码的作用。所以我们能给你的最接近答案的是,"We don't know."