xref: /freebsd/share/man/man7/c.7 (revision 136f6b6c0cc1343a7637c3250ff9dd0eced4b4d0)
1*136f6b6cSFaraz Vahedi.\" Copyright (C) 2007, 2010 Gabor Kovesdan. All rights reserved.
2*136f6b6cSFaraz Vahedi.\" Copyright (C) 2021 Faraz Vahedi <kfv@kfv.io>
3*136f6b6cSFaraz Vahedi.\"
4*136f6b6cSFaraz Vahedi.\" Redistribution and use in source and binary forms, with or without
5*136f6b6cSFaraz Vahedi.\" modification, are permitted provided that the following conditions
6*136f6b6cSFaraz Vahedi.\" are met:
7*136f6b6cSFaraz Vahedi.\" 1. Redistributions of source code must retain the above copyright
8*136f6b6cSFaraz Vahedi.\"    notice, this list of conditions and the following disclaimer.
9*136f6b6cSFaraz Vahedi.\" 2. Redistributions in binary form must reproduce the above copyright
10*136f6b6cSFaraz Vahedi.\"    notice, this list of conditions and the following disclaimer in the
11*136f6b6cSFaraz Vahedi.\"    documentation and/or other materials provided with the distribution.
12*136f6b6cSFaraz Vahedi.\"
13*136f6b6cSFaraz Vahedi.\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14*136f6b6cSFaraz Vahedi.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15*136f6b6cSFaraz Vahedi.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16*136f6b6cSFaraz Vahedi.\" ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
17*136f6b6cSFaraz Vahedi.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18*136f6b6cSFaraz Vahedi.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19*136f6b6cSFaraz Vahedi.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20*136f6b6cSFaraz Vahedi.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21*136f6b6cSFaraz Vahedi.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22*136f6b6cSFaraz Vahedi.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23*136f6b6cSFaraz Vahedi.\" SUCH DAMAGE.
24*136f6b6cSFaraz Vahedi.\"
25*136f6b6cSFaraz Vahedi.\" $FreeBSD$
26*136f6b6cSFaraz Vahedi.\"
27*136f6b6cSFaraz Vahedi.Dd April 18, 2021
28*136f6b6cSFaraz Vahedi.Dt C 7
29*136f6b6cSFaraz Vahedi.Os
30*136f6b6cSFaraz Vahedi.Sh NAME
31*136f6b6cSFaraz Vahedi.Nm c ,
32*136f6b6cSFaraz Vahedi.Nm c78 ,
33*136f6b6cSFaraz Vahedi.Nm c89 ,
34*136f6b6cSFaraz Vahedi.Nm c90 ,
35*136f6b6cSFaraz Vahedi.Nm c95 ,
36*136f6b6cSFaraz Vahedi.Nm c99 ,
37*136f6b6cSFaraz Vahedi.Nm c11 ,
38*136f6b6cSFaraz Vahedi.Nm c17 ,
39*136f6b6cSFaraz Vahedi.Nm c2x
40*136f6b6cSFaraz Vahedi.Nd The C programming language
41*136f6b6cSFaraz Vahedi.Sh DESCRIPTION
42*136f6b6cSFaraz VahediC is a general purpose programming language, which has a strong connection
43*136f6b6cSFaraz Vahediwith the UNIX operating system and its derivatives, since the vast
44*136f6b6cSFaraz Vahedimajority of those systems were written in the C language.
45*136f6b6cSFaraz VahediThe C language contains some basic ideas from the BCPL language through
46*136f6b6cSFaraz Vahedithe B language written by Ken Thompson in 1970 for the DEC PDP-7 machines.
47*136f6b6cSFaraz VahediThe development of the UNIX operating system was started on a PDP-7
48*136f6b6cSFaraz Vahedimachine in assembly language, but it made very difficult to port the existing
49*136f6b6cSFaraz Vahedicode to other systems.
50*136f6b6cSFaraz Vahedi.Pp
51*136f6b6cSFaraz VahediIn 1972 Dennis M. Ritchie worked out the C programming language for
52*136f6b6cSFaraz Vahedifurther development of the UNIX operating system.
53*136f6b6cSFaraz VahediThe idea was to implement only the C compiler for different
54*136f6b6cSFaraz Vahediplatforms, and implement most part of the operating system
55*136f6b6cSFaraz Vahediin the new programming language to simplify the portability between
56*136f6b6cSFaraz Vahedidifferent architectures.
57*136f6b6cSFaraz VahediIt follows that C is very eligible for (but not limited to) writing
58*136f6b6cSFaraz Vahedioperating systems and low-level applications.
59*136f6b6cSFaraz Vahedi.Pp
60*136f6b6cSFaraz VahediThe C language did not have a specification or standardized version for
61*136f6b6cSFaraz Vahedia long time.
62*136f6b6cSFaraz VahediIt went through a lot of changes and improvements for ages.
63*136f6b6cSFaraz VahediIn 1978, Brian W. Kernighan and Dennis M. Ritchie published the
64*136f6b6cSFaraz Vahedifirst book about C under the title "The C Programming Language".
65*136f6b6cSFaraz VahediWe can think of this book as the first specification of the language.
66*136f6b6cSFaraz VahediThis version is often referred as K&R C after the names of the authors.
67*136f6b6cSFaraz VahediSometimes it is referred as C78, as well, after the publishing year of
68*136f6b6cSFaraz Vahedithe first edition of the book.
69*136f6b6cSFaraz Vahedi.Pp
70*136f6b6cSFaraz VahediIt is important to notice, that the instruction set of the language is
71*136f6b6cSFaraz Vahedilimited to the most fundamental elements for simplicity.
72*136f6b6cSFaraz VahediHandling of the standard I/O and such common functions are implemented in
73*136f6b6cSFaraz Vahedithe libraries shipped with the compiler.
74*136f6b6cSFaraz VahediAs these functions are also widely used, it was demanded to include into
75*136f6b6cSFaraz Vahedithe description what requisites the library should conform to, not just
76*136f6b6cSFaraz Vahedistrictly the language itself.
77*136f6b6cSFaraz VahediAccordingly, the aforementioned standards cover the library elements, as well.
78*136f6b6cSFaraz VahediThe elements of this standard library is still not enough for more
79*136f6b6cSFaraz Vahedicomplicated tasks.
80*136f6b6cSFaraz VahediIn this case the provided system calls of the given operating system can be
81*136f6b6cSFaraz Vahediused.
82*136f6b6cSFaraz VahediTo not lose the portability by using these system calls, the POSIX
83*136f6b6cSFaraz Vahedi(Portable Operating System Interface) standard evolved.
84*136f6b6cSFaraz VahediIt describes what functions should be available to keep portability.
85*136f6b6cSFaraz VahediNote, that POSIX is not a C standard, but an operating system standard
86*136f6b6cSFaraz Vahediand thus is beyond the scope of this manual.
87*136f6b6cSFaraz VahediThe standards discussed below are all C standards and only cover
88*136f6b6cSFaraz Vahedithe C programming language and the accompanying library.
89*136f6b6cSFaraz VahediAll listed improvements for each standard edition are taken from the official
90*136f6b6cSFaraz Vahedistandard drafts.
91*136f6b6cSFaraz VahediFor further details, check the publicly available drafts or
92*136f6b6cSFaraz Vahedipurchase the published standards \(em from either ISO or IEC resources.
93*136f6b6cSFaraz Vahedi.Pp
94*136f6b6cSFaraz VahediAfter the publication of the book mentioned before,
95*136f6b6cSFaraz Vahedithe American National Standards Institute (ANSI) started to work on
96*136f6b6cSFaraz Vahedistandardizing the language, and they announced ANSI X3.159-1989
97*136f6b6cSFaraz Vahediin 1989.
98*136f6b6cSFaraz VahediIt is usually referred to as ANSI C or C89.
99*136f6b6cSFaraz VahediThe main difference in this standard were the function prototypes,
100*136f6b6cSFaraz Vahediwhich is a new way of declaring functions.
101*136f6b6cSFaraz VahediWith the old-style function declarations, the compiler was unable to
102*136f6b6cSFaraz Vahedicheck the sanity of the actual parameters at a function call.
103*136f6b6cSFaraz VahediThe old syntax was highly error-prone because incompatible parameters
104*136f6b6cSFaraz Vahediwere hard to detect in the program code and the problem only showed up
105*136f6b6cSFaraz Vahediat run-time.
106*136f6b6cSFaraz Vahedi.Pp
107*136f6b6cSFaraz VahediIn 1990, the International Organization for Standardization (ISO) adopted
108*136f6b6cSFaraz Vahedithe ANSI standard as ISO/IEC 9899:1990 in 1990.
109*136f6b6cSFaraz VahediThis is also referred to as ISO C or C90.
110*136f6b6cSFaraz VahediIt only contains negligible minor modifications against ANSI C,
111*136f6b6cSFaraz Vahediso the two standards often considered to be fully equivalent.
112*136f6b6cSFaraz VahediThis was a very important milestone in the history of the C language, but the
113*136f6b6cSFaraz Vahedidevelopment of the language did not stop.
114*136f6b6cSFaraz Vahedi.Pp
115*136f6b6cSFaraz VahediThe ISO C standard was later extended with an amendment as
116*136f6b6cSFaraz VahediISO/IEC 9899/AMD1 in 1995.
117*136f6b6cSFaraz VahediThis contained, for example, the wide-character support in <wchar.h> and
118*136f6b6cSFaraz Vahedi<wctype.h>, and also restricted character set support via diagraphs and
119*136f6b6cSFaraz Vahedi<iso646.h>.
120*136f6b6cSFaraz VahediThis amendment is usually referred to as C95.
121*136f6b6cSFaraz VahediTwo technical corrigenda were also published: Technical Corrigendum 1 as
122*136f6b6cSFaraz VahediISO/IEC 9899/COR1 in 1994 and Technical Corrigendum 2 as ISO/IEC 9899/COR2
123*136f6b6cSFaraz Vahediin 1996.
124*136f6b6cSFaraz VahediThe continuous development and growth made it necessary to work out a new
125*136f6b6cSFaraz Vahedistandard, which contains the new features and fixes the known defects and
126*136f6b6cSFaraz Vahedideficiencies of the language.
127*136f6b6cSFaraz VahediAs a result, ISO/IEC 9899:1999 was born in 1999 as the second edition of the
128*136f6b6cSFaraz Vahedistandard.
129*136f6b6cSFaraz VahediSimilarly to the other standards, this is informally named after the
130*136f6b6cSFaraz Vahedipublication year as C99.
131*136f6b6cSFaraz VahediThe improvements include (but are not limited to) the following:
132*136f6b6cSFaraz Vahedi.Bl -bullet -offset indent
133*136f6b6cSFaraz Vahedi.It
134*136f6b6cSFaraz Vahedidigraphs, trigraphs, and alternative spellings for the operators that
135*136f6b6cSFaraz Vahediuse non-ISO646 characters in <iso646.h>
136*136f6b6cSFaraz Vahedi.It
137*136f6b6cSFaraz Vahediextended multibyte and wide character library support in <wchar.h> and
138*136f6b6cSFaraz Vahedi<wctype.h>
139*136f6b6cSFaraz Vahedi.It
140*136f6b6cSFaraz Vahedivariable length arrays
141*136f6b6cSFaraz Vahedi.It
142*136f6b6cSFaraz Vahediflexible array members
143*136f6b6cSFaraz Vahedi.It
144*136f6b6cSFaraz Vahedicomplex (and imaginary) number arithmetic support in <complex.h>
145*136f6b6cSFaraz Vahedi.It
146*136f6b6cSFaraz Vaheditype-generic math macros in <tgmath.h>
147*136f6b6cSFaraz Vahedi.It
148*136f6b6cSFaraz Vahedithe long long int type and library functions
149*136f6b6cSFaraz Vahedi.It
150*136f6b6cSFaraz Vahediremove implicit int type
151*136f6b6cSFaraz Vahedi.It
152*136f6b6cSFaraz Vahediuniversal character names (\eu and \eU)
153*136f6b6cSFaraz Vahedi.It
154*136f6b6cSFaraz Vahedicompound literals
155*136f6b6cSFaraz Vahedi.It
156*136f6b6cSFaraz Vahediremove implicit function declaration
157*136f6b6cSFaraz Vahedi.It
158*136f6b6cSFaraz VahediBCPL style single-line comments
159*136f6b6cSFaraz Vahedi.It
160*136f6b6cSFaraz Vahediallow mixed declarations and code
161*136f6b6cSFaraz Vahedi.It
162*136f6b6cSFaraz Vahedithe vscanf family of functions in <stdio.h> and <wchar.h>
163*136f6b6cSFaraz Vahedi.It
164*136f6b6cSFaraz Vahediallow trailing comma in enum declaration
165*136f6b6cSFaraz Vahedi.It
166*136f6b6cSFaraz Vahediinline functions
167*136f6b6cSFaraz Vahedi.It
168*136f6b6cSFaraz Vahedithe snprintf family of functions in <stdio.h>
169*136f6b6cSFaraz Vahedi.It
170*136f6b6cSFaraz Vahediboolean type and macros in <stdbool.h>
171*136f6b6cSFaraz Vahedi.It
172*136f6b6cSFaraz Vahediempty macro arguments
173*136f6b6cSFaraz Vahedi.It
174*136f6b6cSFaraz Vahedi_Pragma preprocessing operator
175*136f6b6cSFaraz Vahedi.It
176*136f6b6cSFaraz Vahedi__func__ predefined identifier
177*136f6b6cSFaraz Vahedi.It
178*136f6b6cSFaraz Vahediva_copy macro in <stdarg.h>
179*136f6b6cSFaraz Vahedi.It
180*136f6b6cSFaraz Vahediadditional strftime conversion specifiers
181*136f6b6cSFaraz Vahedi.El
182*136f6b6cSFaraz Vahedi.Pp
183*136f6b6cSFaraz VahediLater in 2011, the third edition of the standard, ISO/IEC 1989:2011,
184*136f6b6cSFaraz Vahedicommonly reffered to as C11 (formerly C1x), came out and replaced the
185*136f6b6cSFaraz Vahedisecond edition by ISO/IEC 9899:1999/COR1:2001, ISO/IEC 9899:1999/COR2:2004,
186*136f6b6cSFaraz Vahediand ISO/IEC 9899:1999/COR3:2007.
187*136f6b6cSFaraz VahediThe improvements include (but are not limited to) the following:
188*136f6b6cSFaraz Vahedi.Bl -bullet -offset indent
189*136f6b6cSFaraz Vahedi.It
190*136f6b6cSFaraz Vahedisupport for multiple threads of execution and atomic operations in <threads.h>
191*136f6b6cSFaraz Vahediand <stdatomic.h>
192*136f6b6cSFaraz Vahedi.It
193*136f6b6cSFaraz Vahediadditional floating-point characteristic macros in <float.h>
194*136f6b6cSFaraz Vahedi.It
195*136f6b6cSFaraz Vahediquerying and specifying alignment of objects in <stdalign.h> and <stdlib.h>
196*136f6b6cSFaraz Vahedi.It
197*136f6b6cSFaraz VahediUnicode character types and functions in <uchar.h>
198*136f6b6cSFaraz Vahedi.It
199*136f6b6cSFaraz Vaheditype-generic expressions
200*136f6b6cSFaraz Vahedi.It
201*136f6b6cSFaraz Vahedistatic assertions in <assert.h>
202*136f6b6cSFaraz Vahedi.It
203*136f6b6cSFaraz Vahedianonymous structures and unions
204*136f6b6cSFaraz Vahedi.It
205*136f6b6cSFaraz Vahediremove the gets function from <stdio.h>
206*136f6b6cSFaraz Vahedi.It
207*136f6b6cSFaraz Vahediadd the aligned_alloc, at_quick_exit, and quick_exit functions in <stdlib.h>
208*136f6b6cSFaraz Vahedi.El
209*136f6b6cSFaraz Vahedi.Pp
210*136f6b6cSFaraz VahediC11 was later superseded by ISO/IEC 9899:2018, also known as C17 which was
211*136f6b6cSFaraz Vahediprepared in 2017 and published in June 2018 as the fourth edition.
212*136f6b6cSFaraz VahediIt incorporates the Technical Corrigendum 1 (ISO/IEC 9899:2011/COR1:2012)
213*136f6b6cSFaraz Vahediwhich was published in 2012.
214*136f6b6cSFaraz VahediIt addressed defects and deficiencies in C11 without introducing new features,
215*136f6b6cSFaraz Vahedionly corrections and clarifications.
216*136f6b6cSFaraz VahediSince there were no major changes in C17, the current standrad for
217*136f6b6cSFaraz VahediProgramming Language C, is still considered C11 \(em ISO/IEC 9899:2011, published
218*136f6b6cSFaraz Vahedi2011-12-08.
219*136f6b6cSFaraz Vahedi.Pp
220*136f6b6cSFaraz VahediThe next standard, the fifth, is currently referred to as C2x and is scheduled
221*136f6b6cSFaraz Vahedito be adopted by the end of 2021, with a publication date of 2022.
222*136f6b6cSFaraz VahediWhen published, it will cancel and replace the fourth edition, ISO/IEC
223*136f6b6cSFaraz Vahedi9899:2018.
224*136f6b6cSFaraz Vahedi.Pp
225*136f6b6cSFaraz VahediSome useful features have been provided as extensions by some compilers, but
226*136f6b6cSFaraz Vahedithey cannot be considered as standard features.
227*136f6b6cSFaraz Vahedi.Pp
228*136f6b6cSFaraz VahediISO/IEC JTC1/SC22/WG14 committee is responsible for the ISO/IEC 9899,
229*136f6b6cSFaraz VahediC Standard.
230*136f6b6cSFaraz Vahedi.Sh SEE ALSO
231*136f6b6cSFaraz Vahedi.Xr c89 1 ,
232*136f6b6cSFaraz Vahedi.Xr c99 1 ,
233*136f6b6cSFaraz Vahedi.Xr cc 1
234*136f6b6cSFaraz Vahedi.Sh STANDARDS
235*136f6b6cSFaraz Vahedi.Rs
236*136f6b6cSFaraz Vahedi.%A ANSI
237*136f6b6cSFaraz Vahedi.%T X3.159-1989 (aka C89 or ANSI C)
238*136f6b6cSFaraz Vahedi.Re
239*136f6b6cSFaraz Vahedi.Pp
240*136f6b6cSFaraz Vahedi.Rs
241*136f6b6cSFaraz Vahedi.%A ISO/IEC
242*136f6b6cSFaraz Vahedi.%T 9899:1990 (aka C90)
243*136f6b6cSFaraz Vahedi.Re
244*136f6b6cSFaraz Vahedi.Pp
245*136f6b6cSFaraz Vahedi.Rs
246*136f6b6cSFaraz Vahedi.%A ISO/IEC
247*136f6b6cSFaraz Vahedi.%T 9899:1990/AMD 1:1995, Amendment 1: C Integrity (aka C95)
248*136f6b6cSFaraz Vahedi.Re
249*136f6b6cSFaraz Vahedi.Pp
250*136f6b6cSFaraz Vahedi.Rs
251*136f6b6cSFaraz Vahedi.%A ISO/IEC
252*136f6b6cSFaraz Vahedi.%T 9899:1990/COR 1:1994, Technical Corrigendum 1
253*136f6b6cSFaraz Vahedi.Re
254*136f6b6cSFaraz Vahedi.Pp
255*136f6b6cSFaraz Vahedi.Rs
256*136f6b6cSFaraz Vahedi.%A ISO/IEC
257*136f6b6cSFaraz Vahedi.%T 9899:1990/COR 2:1996, Technical Corrigendum 2
258*136f6b6cSFaraz Vahedi.Re
259*136f6b6cSFaraz Vahedi.Pp
260*136f6b6cSFaraz Vahedi.Rs
261*136f6b6cSFaraz Vahedi.%A ISO/IEC
262*136f6b6cSFaraz Vahedi.%T 9899:1999 (aka C99)
263*136f6b6cSFaraz Vahedi.Re
264*136f6b6cSFaraz Vahedi.Pp
265*136f6b6cSFaraz Vahedi.Rs
266*136f6b6cSFaraz Vahedi.%A ISO/IEC
267*136f6b6cSFaraz Vahedi.%T 9899:1999/COR 1:2001, Technical Corrigendum 1
268*136f6b6cSFaraz Vahedi.Re
269*136f6b6cSFaraz Vahedi.Pp
270*136f6b6cSFaraz Vahedi.Rs
271*136f6b6cSFaraz Vahedi.%A ISO/IEC
272*136f6b6cSFaraz Vahedi.%T 9899:1999/COR 2:2004, Technical Corrigendum 2
273*136f6b6cSFaraz Vahedi.Re
274*136f6b6cSFaraz Vahedi.Pp
275*136f6b6cSFaraz Vahedi.Rs
276*136f6b6cSFaraz Vahedi.%A ISO/IEC
277*136f6b6cSFaraz Vahedi.%T 9899:1999/COR 3:2007, Technical Corrigendum 3
278*136f6b6cSFaraz Vahedi.Re
279*136f6b6cSFaraz Vahedi.Pp
280*136f6b6cSFaraz Vahedi.Rs
281*136f6b6cSFaraz Vahedi.%A ISO/IEC
282*136f6b6cSFaraz Vahedi.%T TR 24731-1:2007 (aka bounds-checking interfaces)
283*136f6b6cSFaraz Vahedi.Re
284*136f6b6cSFaraz Vahedi.Pp
285*136f6b6cSFaraz Vahedi.Rs
286*136f6b6cSFaraz Vahedi.%A ISO/IEC
287*136f6b6cSFaraz Vahedi.%T TS 18037:2008 (aka, embedded C)
288*136f6b6cSFaraz Vahedi.Re
289*136f6b6cSFaraz Vahedi.Pp
290*136f6b6cSFaraz Vahedi.Rs
291*136f6b6cSFaraz Vahedi.%A ISO/IEC
292*136f6b6cSFaraz Vahedi.%T TR 24747:2009 (aka mathematical special functions)
293*136f6b6cSFaraz Vahedi.Re
294*136f6b6cSFaraz Vahedi.Pp
295*136f6b6cSFaraz Vahedi.Rs
296*136f6b6cSFaraz Vahedi.%A ISO/IEC
297*136f6b6cSFaraz Vahedi.%T TR 24732:2009 (aka decimal floating-point)
298*136f6b6cSFaraz Vahedi.Re
299*136f6b6cSFaraz Vahedi.Pp
300*136f6b6cSFaraz Vahedi.Rs
301*136f6b6cSFaraz Vahedi.%A ISO/IEC
302*136f6b6cSFaraz Vahedi.%T TR 24731-2:2010 (aka dynamic allocation functions)
303*136f6b6cSFaraz Vahedi.Re
304*136f6b6cSFaraz Vahedi.Pp
305*136f6b6cSFaraz Vahedi.Rs
306*136f6b6cSFaraz Vahedi.%A ISO/IEC
307*136f6b6cSFaraz Vahedi.%T 9899:2011 (aka C11)
308*136f6b6cSFaraz Vahedi.Re
309*136f6b6cSFaraz Vahedi.Pp
310*136f6b6cSFaraz Vahedi.Rs
311*136f6b6cSFaraz Vahedi.%A ISO/IEC
312*136f6b6cSFaraz Vahedi.%T 9899:2011/COR 1:2012, Technical Corrigendum 1
313*136f6b6cSFaraz Vahedi.Re
314*136f6b6cSFaraz Vahedi.Pp
315*136f6b6cSFaraz Vahedi.Rs
316*136f6b6cSFaraz Vahedi.%A ISO/IEC
317*136f6b6cSFaraz Vahedi.%T TS 17961:2013 (aka C secure coding rules)
318*136f6b6cSFaraz Vahedi.Re
319*136f6b6cSFaraz Vahedi.Pp
320*136f6b6cSFaraz Vahedi.Rs
321*136f6b6cSFaraz Vahedi.%A ISO/IEC
322*136f6b6cSFaraz Vahedi.%T TS 18861-1:2014 (aka binary floating-point)
323*136f6b6cSFaraz Vahedi.Re
324*136f6b6cSFaraz Vahedi.Pp
325*136f6b6cSFaraz Vahedi.Rs
326*136f6b6cSFaraz Vahedi.%A ISO/IEC
327*136f6b6cSFaraz Vahedi.%T TS 18861-2:2015 (aka decimal floating-point)
328*136f6b6cSFaraz Vahedi.Re
329*136f6b6cSFaraz Vahedi.Pp
330*136f6b6cSFaraz Vahedi.Rs
331*136f6b6cSFaraz Vahedi.%A ISO/IEC
332*136f6b6cSFaraz Vahedi.%T TS 18861-3:2015 (aka interchange and extended types)
333*136f6b6cSFaraz Vahedi.Re
334*136f6b6cSFaraz Vahedi.Pp
335*136f6b6cSFaraz Vahedi.Rs
336*136f6b6cSFaraz Vahedi.%A ISO/IEC
337*136f6b6cSFaraz Vahedi.%T TS 18861-4:2015 (aka supplementary functions)
338*136f6b6cSFaraz Vahedi.Re
339*136f6b6cSFaraz Vahedi.Pp
340*136f6b6cSFaraz Vahedi.Rs
341*136f6b6cSFaraz Vahedi.%A ISO/IEC
342*136f6b6cSFaraz Vahedi.%T TS 17961:2013/COR 1:2016 (aka C secure coding rules TC1)
343*136f6b6cSFaraz Vahedi.Re
344*136f6b6cSFaraz Vahedi.Pp
345*136f6b6cSFaraz Vahedi.Rs
346*136f6b6cSFaraz Vahedi.%A ISO/IEC
347*136f6b6cSFaraz Vahedi.%T TS 18861-5:2016 (aka supplementary attributes)
348*136f6b6cSFaraz Vahedi.Re
349*136f6b6cSFaraz Vahedi.Pp
350*136f6b6cSFaraz Vahedi.Rs
351*136f6b6cSFaraz Vahedi.%A ISO/IEC
352*136f6b6cSFaraz Vahedi.%T 9899:2018 (aka C17)
353*136f6b6cSFaraz Vahedi.Re
354*136f6b6cSFaraz Vahedi.Sh HISTORY
355*136f6b6cSFaraz VahediThis manual page first appeared in
356*136f6b6cSFaraz Vahedi.Fx 9.0 .
357*136f6b6cSFaraz Vahedi.Sh AUTHORS
358*136f6b6cSFaraz Vahedi.An -nosplit
359*136f6b6cSFaraz VahediThis manual page was originally written by
360*136f6b6cSFaraz Vahedi.An Gabor Kovesdan Aq Mt gabor@FreeBSD.org .
361*136f6b6cSFaraz VahediIt was updated for
362*136f6b6cSFaraz Vahedi.Fx 14.0
363*136f6b6cSFaraz Vahediby
364*136f6b6cSFaraz Vahedi.An Faraz Vahedi Aq Mt kfv@kfv.io
365*136f6b6cSFaraz Vahediwith information about more recent C standards.
366