sizeof - ключевое слово C. Он возвращает размер в типе с именем size_t. Однако size_t - это не ключевое слово, но оно определяется главным образом в stddef.h и, возможно, также в других файлах заголовков стандартного C.
Рассмотрим сценарий, в котором вы хотите создать программу на языке C, в которой не не содержится никаких стандартных заголовков или библиотек стандарта C. (Например, если вы создаете ядро ОС.) Теперь в таком коде можно использовать sizeof (это ключевое слово C, поэтому оно является частью языка), но тип, который он возвращает (size_t) недоступен!
Разве это не означает какую-либо проблему в стандартной спецификации C? Можете ли вы это уточнить?