【发布时间】:2013-09-14 19:05:31
【问题描述】:
我有一个变量id,其类型可能因平台而异。在几个地方,现有代码(我无法更改)将id 设置为“负”值,例如
id = -ETIMEDOUT;
在某些平台上,id 可能会被签名;在其他人身上,它可能没有签名。我想测试一下id 是否设置为-ETIMEDOUT。当id 未签名时,下面的天真尝试会巧妙地失败:
if(id == -ETIMEDOUT)
我如何简明地测试这种情况?
【问题讨论】:
-
为什么不只测试
if(id == (idtype)-ETIMEDOUT),其中idtype是id声明为的任何类型(可能是typedef)?
标签: c unsigned-integer platform-agnostic