Что означает постфикс _t в C?

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

При вводе в мою среду IDE (Xcode) автозаполнение выскакивает из уже определенных слов, когда я частично ввожу имя переменной. Иногда я вижу имена, в конце которых есть «_t».

  1. Что это за соглашение об именах и что оно означает?

  2. Есть ли справочный документ для поиска наиболее часто используемых до и после исправлений?

Поиск по запросу "постфикс" дает мне много сообщений Google о почтовом сервере с таким же именем.


person willc2    schedule 08.09.2009    source источник
comment
Дубликат: stackoverflow.com/questions/231760/   -  person Corbin March    schedule 08.09.2009
comment
Это вопрос из двух частей, но все зацикливаются на первой части.   -  person willc2    schedule 08.09.2009
comment
отредактировал вопрос, чтобы прояснить это.   -  person willc2    schedule 08.09.2009
comment
На вторую часть можно ответить стандартом C и POSIX (см. opengroup.org/onlinepubs/9699919799 /toc.htm) и справочные страницы вашей системы. AFAICR, Microsoft не использует соглашение «_t» в своем собственном коде, за исключением случаев, когда оно следует стандарту (или, по крайней мере, это соглашение не так широко распространено в Windows, как в мире Unix / Linux).   -  person Jonathan Leffler    schedule 08.09.2009
comment
Самые быстрые доводчики на западе :(   -  person willc2    schedule 08.09.2009
comment
Стандарт POSIX резервирует имена, оканчивающиеся на '_t', когда вы включаете заголовки POSIX. Я не думаю, что существуют какие-либо широко распространенные соглашения о префиксах; люди используют несколько символов, часто, но не обязательно, за которыми следует подчеркивание, чтобы создать собственное пространство имен. См. Примеры библиотеки Apache Portable Runtime (апр - apr.apache.org); см. также ICU (icu-project.org) для получения дополнительных примеров и (в C ++) Boost (< библиотеки href = "http://www.boost.org/" rel = "nofollow noreferrer"> boost.org).   -  person Jonathan Leffler    schedule 08.09.2009


Ответы (3)


Буква t означает «тип» или «typedef». Вы увидите множество заголовков POSIX (и других) с time_t, size_t и другими. Они содержат (не обязательно определенные) определенные размеры битов в зависимости от операционной системы и архитектуры машины.

person Sufian    schedule 08.09.2009
comment
Также в стандарте C: size_t, wchar_t, wint_t, clock_t, не говоря уже о целочисленных типах, таких как int8_t, uint16_t, ... Фактически, все типы POSIX, упомянутые в ответе, определены сначала в стандарте C и только во вторую очередь в POSIX (потому что он использует стандарт C). Существует множество типов только для POSIX, оканчивающихся на '_t': например, ino_t, dev_t появляются в <sys/stat.h>, а gid_t, uid_t, mode_t и ... - person Jonathan Leffler; 08.09.2009

основываясь только на моем собственном опыте, постфикс «_t» означает «тип данных». Другими словами, это тип данных, определенный используемым typedef.

person nairdaen    schedule 08.09.2009

Суффикс «_t» - это соглашение для имен типов данных, таких как size_t или wchar_t. Он не используется постоянно.

person John Bode    schedule 08.09.2009
comment
Я считаю, что суффикс _t был в значительной степени POSIX, но затем ANSI решила включить некоторые функции POSIX как важные. Я не могу быть в этом уверен, но первый стандарт POSIX был выпущен в 1988 году, так что они определенно появились примерно в то же время. - person Chris Lutz; 08.09.2009
comment
Первый стандарт C был выпущен в 1989 году, но в основном был готов годом или двумя ранее, поскольку комитет по стандартизации C (ANSI) пытался достичь окончательного согласия по аспектам стандарта I18N / G11N / L10N - в частности, ‹locale.h› . Но вы правы - стандарты (IEEE) POSIX и C были разработаны примерно в одно и то же время. Стандарт ISO POSIX был впервые выпущен в 1990 году, в том же году, что и ISO C, IIRC. - person Jonathan Leffler; 08.09.2009