Я знаю, что в C возвращаемый тип оператора sizeof size_t является неподписанным целым числом, определенным в <stdint.h>. Это означает, что максимальный размер должен быть 65535, как указано в C99 standard 7.18.3:
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
Просьба помочь мне понять, почему есть какая-то разница или причина моего неправильного толкования.