Es interesante que lo nombres por que short , que es una abreviacion de short int.
El unico compilador que eh visto que es de 1 bit es CCS. Por lo cual el codigo no seria lo mas correcto si se quisiera trasladarlo a otro lado.
Por eso use int1 ( 1 bit ). Aunque deberia haber incluido stdbool.h y usar bool como corresponde. O usar BOOLEAN que tambien lo permite CCS
Por ejemplo en XC8 un short ( unsigned o signed ) es de 16 bits, al igual que el int. char es de 8 bits.
En CCS, short es de 1 bit e int de 8bits.
Por eso mismo tambien siempre uso int8, int16. O incluyo la libreria stdint.h donde este trabajando y poder usar uint8_t.
Otra diferencia es long y long long, en CCS es 16bits y 32bits respectivamente. En XC8 ambos son de 32bits.
-----
Resumen es lo mismo que tenes vos pero para todo el puerto.