[diff.mods.to.behavior]

# Annex C (informative) Compatibility [[diff]](./#diff)

## C.8 C standard library [[diff.library]](diff.library#diff.mods.to.behavior)

### C.8.5 Modifications to behavior [diff.mods.to.behavior]

#### [C.8.5.1](#general) General [[diff.mods.to.behavior.general]](diff.mods.to.behavior.general)

[1](#general-1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3806)

Header [<cstdlib>](cstdlib.syn#header:%3ccstdlib%3e "17.2.2 Header <cstdlib> synopsis [cstdlib.syn]"):
The following functions have different behavior:

- [(1.1)](#general-1.1)

atexit

- [(1.2)](#general-1.2)

exit

- [(1.3)](#general-1.3)

abort

Subclause [[support.start.term]](support.start.term "17.5 Startup and termination") describes the changes[.](#general-1.sentence-2)

[2](#general-2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3817)

Header [<csetjmp>](csetjmp.syn#header:%3ccsetjmp%3e "17.14.3 Header <csetjmp> synopsis [csetjmp.syn]"):
The following functions have different behavior:

- [(2.1)](#general-2.1)

longjmp

Subclause [[csetjmp.syn]](csetjmp.syn "17.14.3 Header <csetjmp> synopsis") describes the changes[.](#general-2.sentence-2)

#### [C.8.5.2](#diff.offsetof) Macro offsetof(*type*, *member-designator*) [[diff.offsetof]](diff.offsetof)

[1](#diff.offsetof-1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3829)

The macro offsetof, defined in[<cstddef>](cstddef.syn#header:%3ccstddef%3e "17.2.1 Header <cstddef> synopsis [cstddef.syn]"),
accepts a restricted set of *type* arguments in C++[.](#diff.offsetof-1.sentence-1)

Subclause [[support.types.layout]](support.types.layout "17.2.4 Sizes, alignments, and offsets") describes the change[.](#diff.offsetof-1.sentence-2)

#### [C.8.5.3](#diff.malloc) Memory allocation functions [[diff.malloc]](diff.malloc)

[1](#diff.malloc-1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L3837)

The functionsaligned_alloc,calloc,malloc,
andrealloc are restricted in C++[.](#diff.malloc-1.sentence-1)

Subclause [[c.malloc]](c.malloc "20.2.12 C library memory allocation") describes the changes[.](#diff.malloc-1.sentence-2)
