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