Here in this code, I am using unsigned int and want to terminate my loop as soon as it reaches '0'. But this never happens it passes '0'
#include <stdio.h>
typedef unsigned int uint32_t ;
delay (uint32_t x){
uint32_t y = 0;
for(y=x; y>= 0; y--){
printf("Display number %d\n", y);
}
}
int main()
{
uint32_t times = 10;
printf("Hello World!\n");
delay(10);
return 0;
}
Output:
Hello World!
Display number 10
Display number 9
Display number 8
Display number 7
Display number 6
Display number 5
Display number 4
Display number 3
Display number 2
Display number 1
Display number 0
Display number -1
Display number -2
Display number -3
Display number -4
Display number -5
Display number -6