size_t, key_t, time_t и т. д. - PullRequest
       21

size_t, key_t, time_t и т. д.

4 голосов
/ 18 июля 2009

Я сталкивался с этими типами "X_t" много раз в программах на с, что они на самом деле означают? Где находится определение?

Ответы [ 2 ]

16 голосов
/ 18 июля 2009

Суффикс _t означает «тип»; это не правило, что вы должны его использовать, это просто соглашение, за которым следует множество стандартных типов из стандартных библиотек. Они обычно определяются в заголовочных файлах, которые их используют, или иногда в заголовочных файлах, включаемых этими заголовками.

size_t определяется в <stddef.h>, а time_t определяется в <time.h>. key_t не является стандартным типом C, поэтому он, вероятно, определен в заголовке библиотеки для любой библиотеки, в которой он используется.

Если вы хотите точно знать , из какого заголовочного файла получено определение, вы можете запустить препроцессор:

gcc -E file.c -o file.i

Выход препроцессора file.i покажет вам все вложенные включаемые файлы. Затем вы можете найти его по определению, а затем прокрутить вверх, пока не найдете комментарий, указывающий, из какого заголовочного файла он получен.

0 голосов
/ 18 июля 2009

Я только что сделал поиск Google с "c size_t", который дал эту первую ссылку. Информация о time_t также есть на этом сайте. Как только вы получите эту информацию, это маленький шаг, чтобы понять, что key_t должен следовать той же схеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...