Я знаю в C
Тип возврата sizeof
Оператор size_t
является неподписанным целым числом, определенным в <stdint.h>
. Это означает, максимальный размер его должен быть 65535
, как указано в C99
стандартной 7.18.3:Максимальный размер size_t
limit of size_t
SIZE_MAX 65535
Однако в gcc-4.8.2
заголовочный файл stdint.h
определил его размер значительно больше, чем 65535
противоречащим который заявлен в C99
стандарта, как показано ниже показано,
/* Limit of `size_t' type. */
# if __WORDSIZE == 64
# define SIZE_MAX (18446744073709551615UL)
# else
# define SIZE_MAX (4294967295U)
# endif
Просьба помочь мне понять, почему существует какая-то разница или причина моего неправильного толкования.
Извините за непреднамеренное понижение - мои щелканные пальцы неуклюжи. –
[Как получить SIZE_MAX в C89] (https://stackoverflow.com/q/44401965/995714) –