[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.syn#header:%3ccstdlib%3e "17.2.2 Header 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.syn#header:%3ccsetjmp%3e "17.14.3 Header synopsis [csetjmp.syn]"): The following functions have different behavior: - [(2.1)](#general-2.1) longjmp Subclause [[csetjmp.syn]](csetjmp.syn "17.14.3 Header 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.syn#header:%3ccstddef%3e "17.2.1 Header 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)