Определить 16-битное целое число в C

Мне нужно объявить целое число размером 16 бит, в C.

Я знаю, что размеры short и int зависят от машины.

Я пытался использовать"stdint.h", но кажется, что они просто делают

typedef short int16_t

Итак, мой вопрос:

Я что-то упустил, и короткий тип гарантирует 16-битную длину?

Если нет, есть ли альтернатива, которая гарантирует это?