Разъяснения по поводу суффикса _t
От: LeonCrew Беларусь  
Дата: 19.07.11 09:29
Оценка:
Интересует вопрос, почему многие разработчики стали использовать в названии различных enum и struct "_t", например status_t, error_t, direction_t, buffer_t.

Может где-то есть позновательная статья на эту тему?
Мое использование ограничивалось size_t, int32_t, wchar_t...
Я еще понимаю, когда пишешь библиотеку и там размеры типов "плавают", но когда конечное приложение...
Re: Разъяснения по поводу суффикса _t
От: Son of Northern Darkness  
Дата: 19.07.11 09:36
Оценка:
Здравствуйте, LeonCrew, Вы писали:

LC>Интересует вопрос, почему многие разработчики стали использовать в названии различных enum и struct "_t", например status_t, error_t, direction_t, buffer_t.


LC>Может где-то есть позновательная статья на эту тему?

LC>Мое использование ограничивалось size_t, int32_t, wchar_t...
LC>Я еще понимаю, когда пишешь библиотеку и там размеры типов "плавают", но когда конечное приложение...

Видимо, просто сишная naming convention.

В Си по стандарту символический идентификатор после struct, union и enum называется tag.
Re: Разъяснения по поводу суффикса _t
От: PimpDaddy Россия  
Дата: 19.07.11 09:39
Оценка:
Наверное, это чтобы отличать имя типа от имени чего-то другого. Например, переменной или функции. В суффиксе _t ничего связанного с размером не вижу. 8 — )
Re: Разъяснения по поводу суффикса _t
От: Анатолий Широков СССР  
Дата: 19.07.11 09:49
Оценка: 2 (2) +1
Здравствуйте, LeonCrew, Вы писали:

LC>Интересует вопрос, почему многие разработчики стали использовать в названии различных enum и struct "_t", например status_t, error_t, direction_t, buffer_t.


LC>Может где-то есть позновательная статья на эту тему?

LC>Мое использование ограничивалось size_t, int32_t, wchar_t...
LC>Я еще понимаю, когда пишешь библиотеку и там размеры типов "плавают", но когда конечное приложение...

Суффикс _t использовался для подчеркивания того факта, что это не самодостаточный тип, а алиас типа определенного с помощью typedef.
Re: Разъяснения по поводу суффикса _t
От: igna Россия  
Дата: 19.07.11 09:49
Оценка: 3 (2)
Здравствуйте, LeonCrew, Вы писали:

LC>Интересует вопрос, почему многие разработчики стали использовать в названии различных enum и struct "_t", например status_t, error_t, direction_t, buffer_t.


По-моему в стандарте суффикс _t используют тогда, когда велика вероятность коллизий. Немаловероятно, что типы wchar или int32 кто-то определил в своей программе еще до того, когда они стали стандартными, поэтому стандартными стали wchar_t и int32_t. По этой причине лучше не использовать суффикс _t в своих программах, поскольку типы с таким суффиксом могут стать стандартными в будущем.
Re: Разъяснения по поводу суффикса _t
От: chemey  
Дата: 19.07.11 09:52
Оценка: 1 (1) +1
Здравствуйте, LeonCrew, Вы писали:

LC>Интересует вопрос, почему многие разработчики стали использовать в названии различных enum и struct "_t", например status_t, error_t, direction_t, buffer_t.


_t значит "тип".
Такое соглашение очень помогает разобраться в хитром (шаблонном) коде, в котором иногда непонятно, где тип, а где переменная.

LC>Может где-то есть позновательная статья на эту тему?


Позновательная — от слова "зноние?
Конкретно по суффиксу "_t", наверное, ничего особо познавательного нет (хотя легкое гугление по ключевым словам "suffix _t" дает много интересного).
Рекомендую искать зноние в различных статьях о пользе единого Coding Style (coding guidelines for team depelopment, etc).

LC>Мое использование ограничивалось size_t, int32_t, wchar_t...

LC>Я еще понимаю, когда пишешь библиотеку и там размеры типов "плавают", но когда конечное приложение...

Когда конечное приложение разрабатывается командой, и в команде активно вводятся свои классы, тайпдефы и енумы, любое соглашение, позволяющее легко отличить в коде тип от переменной, принесет большую пользу.
Суффикс _t популярен потому, что удобен и уже практически стал стандартным из-за использования в стандартной библиотеке.
Бзззззззжжжжж
Re[2]: Разъяснения по поводу суффикса _t
От: chemey  
Дата: 19.07.11 12:02
Оценка:
Здравствуйте, igna, Вы писали:

I>По-моему в стандарте суффикс _t используют тогда, когда велика вероятность коллизий. Немаловероятно, что типы wchar или int32 кто-то определил в своей программе еще до того, когда они стали стандартными, поэтому стандартными стали wchar_t и int32_t. По этой причине лучше не использовать суффикс _t в своих программах, поскольку типы с таким суффиксом могут стать стандартными в будущем.


Для избавления от коллизий в С++ используются неймспейсы, поэтому в проектах на С++ этот суффикс используется весьма активно и без опасений (из тех, с которыми пришлось возиться — чуть ли не во всех).

В С — да, можно огрести проблем в будущем, если ввести какой-нибудь свой number_t.
Бзззззззжжжжж
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.