Что означает `_t``size_t` в C?

Возможный дубликат:
Что представляет собой тип, за которым следует _t (underscore-t)?

Я знаю что size_t является. Целочисленный тип зависит от платформы. Но я не могу понять, что t стоять за. И есть много типизированных суффиксов с _t, Что такое _t средства?

2 ответа

Решение

"т" означает "тип" (или для некоторых людей, typedef, которая используется для их создания). size_t тип, используемый для указания размеров памяти. time_t с другой стороны, это тип, используемый для указания промежутков времени. Как правило, они ссылаются на один и тот же базовый тип (64-разрядное или 32-разрядное целое число, в зависимости от платформы), но метка помогает сохранить их концептуально прямыми, чтобы компилятор мог определить детали реализации.

Например, time_t Раньше было 32-разрядным целым числом, что означало, что часы перевернутся в 2038 году. Но на большинстве 64-разрядных архитектур они расширились. time_t быть 64-битным целым числом, что означает, что 64-битные системы не будут иметь проблемы "год-2038". Поскольку код, который работает с метками времени Unix, использует имя типа time_t скорее, чем int чтобы ссылаться на эти значения, все будет "просто работать", когда вы просто перекомпилируете код для вашей новой архитектуры.

По моему опыту _t - это обычный суффикс для типов, объявленных с использованием typedef.

например

typedef int myInt_t;

так далее...

Другие вопросы по тегам