Why is the command line arguments count variable (traditionally argc
) an int
instead of an unsigned int
? Is there a technical reason for t
Another reason could be that unsigned types can be inconvenient for iteration. For example, this snippet iterating down:
for (size_t i = SIZE - 1; i >= 0; --i)
...
Is, in fact, a bug. When i reaches 0 in the last iteration, it will go on right into 4294967295 (on a 32-bit machine) and the loop won't terminate.
For this reason, I personally find plain ints more convenient for iteration. You don't have to be especially careful when you switch a for
loop from counting up to counting down when using ints.