Da musste ich gerade erst einmal googeln, was "short" überhaupt für ein
Datentyp ist. In 30 Jahren habe ich den noch nie gesehen - was für mich
schon ein ganz großer Wink mit dem Zaunpfahl ist.
short ist ein also ein Integer mit mindestens 16 Bits.
Ich bin ziemlich sicher, dass man besser mit exakten Größen arbeiten
sollte. In diesem Fall also uint16_t. Dann ist auch klar, was dabei
heraus kommt und es ist offensichtlich, dass man darin keine
Fließkommazahlen speichern kann.
Bei plattform-unabhängigen Code sind noch die fast_xxx Typen
interessant. Da gibt man die mindeste Größe an die man braucht, und der
Compiler nimmt ggf. was größeres, wenn der Prozessor damit schneller
umgehen kann.