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

标签 c if-statement runtime-error bit-shift

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

if (x<<y)

这个问题的结论性答案是上面写的语句不是任何类型的错误,也不是运行时错误。

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

if (x<<y) x++;

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

最佳答案

如果没有任何周围的上下文,就不可能判断这段代码是否会出现任何运行时错误:

if (x<<y) x++;

我们不知道xy的类型或值,也不知道代码的预期用途。因此,我们能给您的最接近的答案是“我们不知道。”

关于c - if 语句涉及变量位移 - 错误与否(更新),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57192984/

相关文章:

c++ - 用于 Web 应用程序核心逻辑开发的 C/C++?

c - 通过套接字c读取整数

c - 内存受限系统中的数组

c - c 程序的意外行为,试图从 K&R 解决 E6-2

variables - 使用 Haskell 从 if 语句获取输入并传递变量

python - 关于我制作的小型转换器的IF语句问题

batch-file - 批处理文件 : If directory exists, 做某事

c# - 识别 C# 中的索引越界

assembly - 提取地址未在字边界上对齐(MIPS)

java - 在 IntelliJ IDEA 13 中运行编译的 Groovy 代码时出现运行时错误