#include <stdio.h>
int fonction_test(void){
static char index = 50;
for(; index<=0xff;index++){
printf("Valeur: %02x\r\n", index);
}
return (int(index));
}
int main(){
// your code goes here
fonction_test();
return 0;
}
说实话,我并不熟悉C,但我想理解为什么这次迭代只有155次。
答案 0 :(得分:2)
'index'是char
。根据C字符,可以签名或不签名。这是实现定义。所以不同的编译器/处理器会有所不同。
它可以采用char
的最大值是255(0xFF)。当您添加1时,它将取决于您的系统中char
是已签名还是未签名。如果是无符号的,它将循环到0
。如果已签名,则未定义,但大多数编译器仍会回绕到-128
。在任何一种情况下,for循环条件永远不会为false。
你有一个无限循环。这就是为什么它会出错。
此外,您拥有的代码无法编译,您需要将行return (int(index));
修改为return ((int)(index));