Почему uintptr_t и intpr_t являются необязательными типами в стандарте C (и C ++)? - PullRequest
0 голосов
/ 19 ноября 2018

Стандарт C99 (и более поздние стандарты) требует, чтобы определенные типы были доступны в заголовке <stdint.h>. Для точной ширины, например, int8_t, int16_t и т. Д., Они являются необязательными и мотивируются в стандарте, почему это так.

Но для типов uintptr_t и intptr_t они также являются необязательными, но я не вижу причин, по которым они являются необязательными, а не обязательными.

1 Ответ

0 голосов
/ 19 ноября 2018

На некоторых платформах типы указателей имеют гораздо больший размер, чем любой интегральный тип. Я считаю, что примером такой платформы может быть IBM AS / 400 с виртуальным набором команд, определяющим все указатели как 128-битные.

...