size_t только в стандарте C ++ или в стандарте C?
Я не могу найти заголовок C в дереве "/ usr / include", которое определяет size_t.
Если его нет в C std, GCC просто делает что-то волшебное, чтобы заставить вещи работать?
Спасибо, Chenz
size_t определяется как <stddef.h>, так и <stdlib.h>
size_t
<stddef.h>
<stdlib.h>
С C99 осадка:
7,17 Общие определения <stddef.h>
Следующие типы и макросы определены в стандартном заголовке <stddef.h>. Немного также определены в других заголовках, как указано в соответствующих подпунктах.
Типы: [- snip -]
- целочисленный тип без знака результата оператора sizeof; [- чик -]
sizeof
size_t из стандартной библиотеки C
Объявлен в
#include <stddef.h> //For C #include <cstddef> //For C++
$ grep -R -P "typedef.*\s+size_t;" /usr/include/ 2> /dev/null
grep -R -P "typedef.*\s+size_t;" /usr/include/ 2> /dev/null
выдаст вам список файлов, которые определяют size_t
Это определено в string.h в ANSI C.
size_t находится в stdlib.h для C (или cstdlib.h в C ++).