我有一个代码段,其中我将值分配给变量, var
。在变量之间,在左/右移动操作上作用。这样的变量可以曾经变得无效。
请注意,null主要定义为
#define null ((void*)0)
如果不能为null,则检查以下检查:
if (var == null)
将产生永不执行的死亡代码。
内置移位运算符仅适用于积分或未指示的枚举类型的值。内置比较与您的null
仅适用于 Pointer 类型的值合法。这意味着内置偏移的结果永远无法与您的null
进行比较。(这里唯一的潜在漏洞是使用Shifts形成零销量常数的可能性 - 积分零。
换句话说,没有有效的上下文,甚至可以出现这个问题。您的if
不会产生"死代码"或"活着的代码"。它根本不会编译。
但是,如果您谈论的是超负荷的操作员,那么一切皆有可能。但是,在这种情况下,您的问题太广泛而无法有意义。
在C中,您可以将Interger值与指针进行比较,因此代码会产生警告,但可能会按预期工作。(虽然不推荐(