short index vs. int index

This is a discussion on short index vs. int index within the C Programming forums, part of the General Programming Boards category; Hello again,
In every book or tutorial about C language I happened to take a look, they use indexes for ...

short index vs. int index

Hello again,
In every book or tutorial about C language I happened to take a look, they use indexes for loops and arrays, in programs used as examples, that won't count/index but a very small number, like that:

The common argument is that an int is *supposed* to be the native size of the registers in the target processor (hense the business about 16 vs 32 vs 64 bit compilers) and *may* offer a slight performance advantage over short or char for loop counters and iterators by eliminating the need to convert when loading the values. However; most decent compilers keep loop counters in registers after the initial read from memory, so that is no longer much of an issue.

If you're on a machine that lacks easy byte / word / long access to registers (like say the x86), you might be causing more work to keep the value within bounds of the shorter data type.

Do you ever have loops which run for more iterations than can be fit into a short?
Or more insidiously, where your #define limit can change after you've written the code to be >short, you're basically introducing bug opportunities.

Picking a single style which works all the time is preferable to trying to second-guess (and getting it wrong) what the future is likely to be.