Annex C (informative) Compatibility [diff]

C.5 C standard library [diff.library]

В этом подпункте суммируются явные изменения в заголовках, определениях, объявлениях или поведении между стандартной библиотекой C в стандарте C и частями стандартной библиотеки C ++, которые были включены из стандартной библиотеки C.

C.5.1 Modifications to headers [diff.mods.to.headers]

Для совместимости со стандартной библиотекой C стандартная библиотека C ++ предоставляет перечисленные в C заголовки [depr.c.headers], но их использование не рекомендуется в C ++.

Там нет C ++ заголовков для заголовков C , и , равно как и заголовки C сама часть C ++.<stdatomic.h><stdnoreturn.h> <threads.h>

Заголовки C ++ ( ) и ( ), а также соответствующие им заголовки C и и не содержат никакого содержимого из стандартной библиотеки C, а вместо этого просто включают другие заголовки из стандартной библиотеки C ++. <ccomplex>[depr.ccomplex.syn] <ctgmath>[depr.ctgmath.syn] <complex.h> <tgmath.h>

Заголовки <ciso646>, <cstdalign> ([depr.cstdalign.syn]) и <cstdbool> ([depr.cstdbool.syn]) не имеют смысла в C ++. Использование С ++ заголовки <ccomplex>, <cstdalign>, <cstdbool>и <ctgmath> является устаревшим ([depr.c.headers]).

C.5.2 Modifications to definitions [diff.mods.to.definitions]

C.5.2.1 Types char16_­t and char32_­t [diff.char16]

Типы char16_­t и char32_­t являются отдельными типами, а не определениями существующих целочисленных типов. Токены char16_­t и char32_­t находятся keywords в настоящем международном стандарте. Они не отображаются как имена макросов, определенные в <cuchar>.

C.5.2.2 Type wchar_­t [diff.wchar.t]

Тип wchar_­t - это отдельный тип, а не определение существующего целочисленного типа. В этом международном стандарте токен wchar_­t является символом a keyword . Это не появляется как имя типа , определенного в любом из , или .<cstddef><cstdlib> <cwchar>

C.5.2.3 Header <assert.h> [diff.header.assert.h]

В этом международном стандарте токен static_­assert является символом a keyword . Он не отображается как имя макроса, определенное в <cassert>.

C.5.2.4 Header <iso646.h> [diff.header.iso646.h]

Маркеры and, and_­eq, bitand, bitor, compl, not_­eq, not, or, or_­eq, xor, и xor_­eq являются keywords в настоящем стандарте. Они не отображаются как имена макросов, определенные в <ciso646>.

C.5.2.5 Header <stdalign.h> [diff.header.stdalign.h]

Маркер alignas - это ключевое слово в этом международном стандарте ([lex.key]). Он не отображается как имя макроса, определенное в ( ). <cstdalign>[depr.cstdalign.syn]

C.5.2.6 Header <stdbool.h> [diff.header.stdbool.h]

Жетоны bool, trueи false указаны keywords в этом международном стандарте. Они не отображаются как имена макросов, определенные в ( ).<cstdbool>[depr.cstdbool.syn]

C.5.2.7 Macro NULL [diff.null]

Макрос NULL, определенный в любом из , , , , , , или , является реализацией определенного C ++ константного указателя NULL в настоящем стандарте ( ).<clocale><cstddef><cstdio><cstdlib><cstring><ctime> <cwchar>[support.types]

C.5.3 Modifications to declarations [diff.mods.to.declarations]

Заголовок : следующие функции имеют разные объявления: <cstring>

В подпункте [cstring.syn] описаны изменения.

Заголовок : следующие функции имеют разные объявления: <cwchar>

В подпункте [cwchar.syn] описаны изменения.

Заголовок объявляет имя в дополнение к именам, объявленным в стандартной библиотеке C. <cstddef> nullptr_­t <stddef.h>

C.5.4 Modifications to behavior [diff.mods.to.behavior]

Заголовок : Следующие функции ведут себя по-разному: <cstdlib>

В подпункте [support.start.term] описаны изменения.

Заголовок : Следующие функции ведут себя по-разному: <csetjmp>

В подпункте [csetjmp.syn] описаны изменения.

C.5.4.1 Macro offsetof(type, member-designator) [diff.offsetof]

Макрос offsetof, определенный в , принимает ограниченный набор аргументов в этом международном стандарте. Подпункт описывает изменение.<cstddef> type [support.types.layout]

C.5.4.2 Memory allocation functions [diff.malloc]

Функции aligned_­alloc, calloc, mallocи realloc ограничены в настоящем стандарте. В подпункте [c.malloc] описаны изменения.