给定:
定义为的类型TheValueT
可以任意配置,例如uint8_t
或int64_
。让有一些代码:
TheValueT x = ...;
... do something to 'x' ...
if( x < 0 ) {
/* Do something. */
}
问题:
碰巧如果TheValueT
定义为无符号类型,编译器会抱怨“由于类型范围有限,条件始终为真......”。
问题:
如何在让TheValueT
仍然是任意整数类型的同时避免编译器警告?该解决方案应适用于最广泛的 C 编译器。