На этом шаге мы перечислим определения, находящиеся в <stddef>.
В программах C++ часто используются два заголовочных файла, совместимых с С: <cstddef> и <cstdlib>.
Они представляют собой обновленные версии заголовочных файлов <stddef.h> и <stdlib.h> языка С и
содержат определения некоторых распространенных констант, макросов, типов и функций.
Определения <cstddef>
В таблице 1 перечислены определения из заголовочного файла <cstddef>. Определение NULL часто
используется для обозначения указателя, ссылающегося иа "ничто". Оно соответствует значению 0 (в виде типа int или long).
В языке С значение NULL часто определяется как (void*)0, но в С++ такое определение неверно -
тип NULL должен быть целочисленным, иначе присваивание указателю NULL станет невозможным. Дело в том, что в
C++ не существует автоматического преобразования void* в любой другой тип. Учтите, что NULL также
определяется в заголовочных файлах <cstdio>, <cstdlib>, <cstring>, <ctime>, <cwchar> и <clocale>.
Таблица 1. Определения <cstddef>
Идентификатор | Описание |
---|---|
NULL | "Неопределенное" значение указателя |
size_t | Беззнаковый тип для обозначения размеров (например, количества элементов) |
ptrdiff_t | Знаковый тип для разности указателей |
offsetof() | Смещение члена структуры или объединения |
На следующем шаге мы рассмотрим определения <cstdlib>.