In a lot of code examples, source code, libraries etc. I see the use of int when as far as I can see, an unsigned int
would make much more sense.
One place I see this a lot is in for
loops. See below example:
for(int i = 0; i < length; i++)
{
// Do Stuff
}
Why on earth would you use an int
rather than an unsigned int
? Is it just laziness - people can't be bothered with typing unsigned
?
Using unsigned
can introduce programming errors that are hard to spot, and it's usually better to use signed int
just to avoid them. One example would be when you decide to iterate backwards rather than forwards and write this:
for (unsigned i = 5; i >= 0; i--) {
printf("%d\n", i);
}
Another would be if you do some math inside the loop:
for (unsigned i = 0; i < 10; i++) {
for (unsigned j = 0; j < 10; j++) {
if (i - j >= 4) printf("%d %d\n", i, j);
}
}
Using unsigned
introduces the potential for these sorts of bugs, and there's not really any upside.