Definir un entero de 16 bits en C

Necesito declarar un número entero del tamaño de 16 bits, en C.

Sé que los tamaños cortos e int dependen de la máquina.

Intenté usar"stdint.h", pero parece que simplemente lo hacen

typedef short int16_t

Entonces mi pregunta es:

Me falta algo y el tipo corto garantiza una longitud de 16 bits?

Si no, ¿hay alguna alternativa que lo garantice?