Они позволяют вам явно указывать размер для типа без зависимости от семантики компилятора или машины, например, от размера 'long' или 'int'.
Они достаточно хорошо описаны onэта страница .
Я цитирую с этой страницы:
QI: целое число, равное наименьшей адресуемой единице, обычно 8 бит.
HI: целое число, в два раза большее, чем целое число в режиме QI, обычно 16 бит.
SI: целое число, в четыре раза большее, чем целое число в режиме QI, обычно 32 бита.
DI: целое число, в восемь раз большее, чем целое число в режиме QI, обычно 64 бита.
SF: значение с плавающей запятой, равное целому числу в режиме SI, обычно 32 бита.
DF: значение с плавающей запятой, равное целому числу в режиме DI, обычно 64 бита.
Итак, DI
по существу sizeof(char) * 8
.
Дальнейшее объяснение, включая TI
mode, можно найти здесь (возможно, лучше, чем первая ссылка, но обе предоставлены для справки).
То есть TI
по существу sizeof(char) * 16
(128 бит).