小编jlu*_*nta的帖子

For 循环中奇怪的 LLVM 无符号到有符号转换

我不确定这是否只发生在Apple 的 LLVM Compiler 4.0 (XCode 4.4.1)上,但我注意到以下行为:

NSUInteger currentIndex = 0;
NSUInteger sideSize = 2;

// Method A
for (NSInteger i = currentIndex-sideSize; i < currentIndex+sideSize; i++)
{
    printf("In the loop\n"); // WON'T be executed
}

// Method B
for (NSInteger i = (NSInteger)(currentIndex-sideSize); i < currentIndex+sideSize; i++)
{
    printf("In the loop\n"); // WON'T be executed
}

// Method C
for (NSInteger i = (NSInteger)(currentIndex-sideSize); i < (NSInteger)(currentIndex+sideSize); i++)
{
    printf("In the loop\n"); // WILL be executed
} …
Run Code Online (Sandbox Code Playgroud)

c++ unsigned signed for-loop llvm

0
推荐指数
1
解决办法
484
查看次数

标签 统计

c++ ×1

for-loop ×1

llvm ×1

signed ×1

unsigned ×1