【发布时间】:2012-08-02 05:48:03
【问题描述】:
如果没有没有保证(甚至似乎没有机会),那么拥有一个单独的无符号类型(又名NSUInteger)有什么意义?假设,赌上你的底钱,或者哭着睡 - 顾名思义 - 固有的非负面结果。
NSUInteger normal = 5;
NSUInteger freaky = normal - 55;
NSLog(@"%ld, %ld", normal, freaky);
NSLOG 5, -50
当然,我可以向后弯腰尝试获得零,或某种标准化值......
NSUInteger nonNeg = (((normal - 55) >= 0) ? (normal - 55) : 0);
PARRALELUNIVERSELOG 5, -50
但是编译器在这里抱怨......这是理所当然的,所以comparison of unsigned expression >= 0 is always true - 就是这样,一个我不想要/期望的答案。有人拍我的脸,给我倒杯酒,告诉我现在是哪一年......或者更好......如何做到 - 你知道 - 不要那样做。
【问题讨论】:
标签: objective-c xcode casting clang primitive