-7 This implementation achieves the required treatment of infinities at the cost of only one isnan test in
- ordinary (finite) cases. It is less than ideal in that undue overflow and underflow may occur.
-
-8 EXAMPLE 2 Division of two double _Complex operands could be implemented as follows.
- #include <a href="#7.12"><math.h></a>
- #include <a href="#7.3"><complex.h></a>
- /* Divide z / w ... */
- double complex _Cdivd(double complex z, double complex w)
- {
- #pragma STDC FP_CONTRACT OFF
- double a, b, c, d, logbw, denom, x, y;
- int ilogbw = 0;
- a = creal(z); b = cimag(z);
- c = creal(w); d = cimag(w);
- logbw = logb(fmax(fabs(c), fabs(d)));
- if (isfinite(logbw)) {
- ilogbw = (int)logbw;
- c = scalbn(c, -ilogbw); d = scalbn(d, -ilogbw);
- }
- denom = c * c + d * d;
- x = scalbn((a * c + b * d) / denom, -ilogbw);
- y = scalbn((b * c - a * d) / denom, -ilogbw);
- /* Recover infinities and zeros that computed as NaN+iNaN; */
- /* the only cases are nonzero/zero, infinite/finite, and finite/infinite, ... */
- if (isnan(x) && isnan(y)) {
- if ((denom == 0.0) &&
- (!isnan(a) || !isnan(b))) {
- x = copysign(INFINITY, c) * a;
- y = copysign(INFINITY, c) * b;
- }
- else if ((isinf(a) || isinf(b)) &&
- isfinite(c) && isfinite(d)) {
- a = copysign(isinf(a) ? 1.0 : 0.0, a);
- b = copysign(isinf(b) ? 1.0 : 0.0, b);
- x = INFINITY * ( a * c + b * d );
- y = INFINITY * ( b * c - a * d );
- }
- else if (isinf(logbw) &&
- isfinite(a) && isfinite(b)) {
- c = copysign(isinf(c) ? 1.0 : 0.0, c);
- d = copysign(isinf(d) ? 1.0 : 0.0, d);
- x = 0.0 * ( a * c + b * d );
- y = 0.0 * ( b * c - a * d );
-
-[<a name="p471" href="#p471">page 471</a>] (<a href="#Contents">Contents</a>)
-
- }
- }
- return x + I * y;
- }
-9 Scaling the denominator alleviates the main overflow and underflow problem, which is more serious than
- for multiplication. In the spirit of the multiplication example above, this code does not defend against
- overflow and underflow in the calculation of the numerator. Scaling with the scalbn function, instead of
- with division, provides better roundoff characteristics.
-
-<a name="G.5.2" href="#G.5.2"><b> G.5.2 Additive operators</b></a>
- Semantics
-1 If both operands have imaginary type, then the result has imaginary type. (If one operand
- has real type and the other operand has imaginary type, or if either operand has complex
- type, then the result has complex type.)
-2 In all cases the result and floating-point exception behavior of a + or - operator is defined
- by the usual mathematical formula:
- + or - u iv u + iv
-
- x x(+-)u x (+-) iv (x (+-) u) (+-) iv
-
- iy (+-)u + iy i(y (+-) v) (+-)u + i(y (+-) v)
-
- x + iy (x (+-) u) + iy x + i(y (+-) v) (x (+-) u) + i(y (+-) v)
-<a name="G.6" href="#G.6"><b> G.6 Complex arithmetic <complex.h></b></a>
-1 The macros
- imaginary
- and
- _Imaginary_I
- are defined, respectively, as _Imaginary and a constant expression of type const
- float _Imaginary with the value of the imaginary unit. The macro
- I
- is defined to be _Imaginary_I (not _Complex_I as stated in <a href="#7.3">7.3</a>). Notwithstanding
- the provisions of <a href="#7.1.3">7.1.3</a>, a program may undefine and then perhaps redefine the macro
- imaginary.
-2 This subclause contains specifications for the <a href="#7.3"><complex.h></a> functions that are
- particularly suited to IEC 60559 implementations. For families of functions, the
- specifications apply to all of the functions even though only the principal function is
-
-[<a name="p472" href="#p472">page 472</a>] (<a href="#Contents">Contents</a>)
-
- shown. Unless otherwise specified, where the symbol ''(+-)'' occurs in both an argument
- and the result, the result has the same sign as the argument.
-3 The functions are continuous onto both sides of their branch cuts, taking into account the
- sign of zero. For example, csqrt(-2 (+-) i0) = (+-)isqrt:2. ???
-4 Since complex and imaginary values are composed of real values, each function may be
- regarded as computing real values from real values. Except as noted, the functions treat
- real infinities, NaNs, signed zeros, subnormals, and the floating-point exception flags in a
- manner consistent with the specifications for real functions in F.9.326)
-5 The functions cimag, conj, cproj, and creal are fully specified for all
- implementations, including IEC 60559 ones, in <a href="#7.3.9">7.3.9</a>. These functions raise no floating-
- point exceptions.
-6 Each of the functions cabs and carg is specified by a formula in terms of a real
- function (whose special cases are covered in <a href="#F">annex F</a>):
- cabs(x + iy) = hypot(x, y)
- carg(x + iy) = atan2(y, x)
-7 Each of the functions casin, catan, ccos, csin, and ctan is specified implicitly by
- a formula in terms of other complex functions (whose special cases are specified below):
- casin(z) = -i casinh(iz)
- catan(z) = -i catanh(iz)
- ccos(z) = ccosh(iz)
- csin(z) = -i csinh(iz)
- ctan(z) = -i ctanh(iz)
-8 For the other functions, the following subclauses specify behavior for special cases,
- including treatment of the ''invalid'' and ''divide-by-zero'' floating-point exceptions. For
- families of functions, the specifications apply to all of the functions even though only the
- principal function is shown. For a function f satisfying f (conj(z)) = conj( f (z)), the
- specifications for the upper half-plane imply the specifications for the lower half-plane; if
- the function f is also either even, f (-z) = f (z), or odd, f (-z) = - f (z), then the
- specifications for the first quadrant imply the specifications for the other three quadrants.
-9 In the following subclauses, cis(y) is defined as cos(y) + i sin(y).
-
-
-
-
- 326) As noted in <a href="#G.3">G.3</a>, a complex value with at least one infinite part is regarded as an infinity even if its
- other part is a NaN.
-
-[<a name="p473" href="#p473">page 473</a>] (<a href="#Contents">Contents</a>)
-
-<a name="G.6.1" href="#G.6.1"><b> G.6.1 Trigonometric functions</b></a>
-<a name="G.6.1.1" href="#G.6.1.1"><b> G.6.1.1 The cacos functions</b></a>
-1 -- cacos(conj(z)) = conj(cacos(z)).
- -- cacos((+-)0 + i0) returns pi /2 - i0.
- -- cacos((+-)0 + iNaN) returns pi /2 + iNaN.
- -- cacos(x + i (inf)) returns pi /2 - i (inf), for finite x.
- -- cacos(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for nonzero finite x.
- -- cacos(-(inf) + iy) returns pi - i (inf), for positive-signed finite y.
- -- cacos(+(inf) + iy) returns +0 - i (inf), for positive-signed finite y.
- -- cacos(-(inf) + i (inf)) returns 3pi /4 - i (inf).
- -- cacos(+(inf) + i (inf)) returns pi /4 - i (inf).
- -- cacos((+-)(inf) + iNaN) returns NaN (+-) i (inf) (where the sign of the imaginary part of the
- result is unspecified).
- -- cacos(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for finite y.
- -- cacos(NaN + i (inf)) returns NaN - i (inf).
- -- cacos(NaN + iNaN) returns NaN + iNaN.
-<a name="G.6.2" href="#G.6.2"><b> G.6.2 Hyperbolic functions</b></a>
-<a name="G.6.2.1" href="#G.6.2.1"><b> G.6.2.1 The cacosh functions</b></a>
-1 -- cacosh(conj(z)) = conj(cacosh(z)).
- -- cacosh((+-)0 + i0) returns +0 + ipi /2.
- -- cacosh(x + i (inf)) returns +(inf) + ipi /2, for finite x.
- -- cacosh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid''
- floating-point exception, for finite x.
- -- cacosh(-(inf) + iy) returns +(inf) + ipi , for positive-signed finite y.
- -- cacosh(+(inf) + iy) returns +(inf) + i0, for positive-signed finite y.
- -- cacosh(-(inf) + i (inf)) returns +(inf) + i3pi /4.
- -- cacosh(+(inf) + i (inf)) returns +(inf) + ipi /4.
- -- cacosh((+-)(inf) + iNaN) returns +(inf) + iNaN.
-
-
-[<a name="p474" href="#p474">page 474</a>] (<a href="#Contents">Contents</a>)
-
- -- cacosh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid''
- floating-point exception, for finite y.
- -- cacosh(NaN + i (inf)) returns +(inf) + iNaN.
- -- cacosh(NaN + iNaN) returns NaN + iNaN.
-<a name="G.6.2.2" href="#G.6.2.2"><b> G.6.2.2 The casinh functions</b></a>
-1 -- casinh(conj(z)) = conj(casinh(z)) and casinh is odd.
- -- casinh(+0 + i0) returns 0 + i0.
- -- casinh(x + i (inf)) returns +(inf) + ipi /2 for positive-signed finite x.
- -- casinh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid''
- floating-point exception, for finite x.
- -- casinh(+(inf) + iy) returns +(inf) + i0 for positive-signed finite y.
- -- casinh(+(inf) + i (inf)) returns +(inf) + ipi /4.
- -- casinh(+(inf) + iNaN) returns +(inf) + iNaN.
- -- casinh(NaN + i0) returns NaN + i0.
- -- casinh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid''
- floating-point exception, for finite nonzero y.
- -- casinh(NaN + i (inf)) returns (+-)(inf) + iNaN (where the sign of the real part of the result
- is unspecified).
- -- casinh(NaN + iNaN) returns NaN + iNaN.
-<a name="G.6.2.3" href="#G.6.2.3"><b> G.6.2.3 The catanh functions</b></a>
-1 -- catanh(conj(z)) = conj(catanh(z)) and catanh is odd.
- -- catanh(+0 + i0) returns +0 + i0.
- -- catanh(+0 + iNaN) returns +0 + iNaN.
- -- catanh(+1 + i0) returns +(inf) + i0 and raises the ''divide-by-zero'' floating-point
- exception.
- -- catanh(x + i (inf)) returns +0 + ipi /2, for finite positive-signed x.
- -- catanh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid''
- floating-point exception, for nonzero finite x.
- -- catanh(+(inf) + iy) returns +0 + ipi /2, for finite positive-signed y.
- -- catanh(+(inf) + i (inf)) returns +0 + ipi /2.
- -- catanh(+(inf) + iNaN) returns +0 + iNaN.
-
-[<a name="p475" href="#p475">page 475</a>] (<a href="#Contents">Contents</a>)
-
- -- catanh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid''
- floating-point exception, for finite y.
- -- catanh(NaN + i (inf)) returns (+-)0 + ipi /2 (where the sign of the real part of the result is
- unspecified).
- -- catanh(NaN + iNaN) returns NaN + iNaN.
-<a name="G.6.2.4" href="#G.6.2.4"><b> G.6.2.4 The ccosh functions</b></a>
-1 -- ccosh(conj(z)) = conj(ccosh(z)) and ccosh is even.
- -- ccosh(+0 + i0) returns 1 + i0.
- -- ccosh(+0 + i (inf)) returns NaN (+-) i0 (where the sign of the imaginary part of the
- result is unspecified) and raises the ''invalid'' floating-point exception.
- -- ccosh(+0 + iNaN) returns NaN (+-) i0 (where the sign of the imaginary part of the
- result is unspecified).
- -- ccosh(x + i (inf)) returns NaN + iNaN and raises the ''invalid'' floating-point
- exception, for finite nonzero x.
- -- ccosh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for finite nonzero x.
- -- ccosh(+(inf) + i0) returns +(inf) + i0.
- -- ccosh(+(inf) + iy) returns +(inf) cis(y), for finite nonzero y.
- -- ccosh(+(inf) + i (inf)) returns (+-)(inf) + iNaN (where the sign of the real part of the result is
- unspecified) and raises the ''invalid'' floating-point exception.
- -- ccosh(+(inf) + iNaN) returns +(inf) + iNaN.
- -- ccosh(NaN + i0) returns NaN (+-) i0 (where the sign of the imaginary part of the
- result is unspecified).
- -- ccosh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for all nonzero numbers y.
- -- ccosh(NaN + iNaN) returns NaN + iNaN.
-<a name="G.6.2.5" href="#G.6.2.5"><b> G.6.2.5 The csinh functions</b></a>
-1 -- csinh(conj(z)) = conj(csinh(z)) and csinh is odd.
- -- csinh(+0 + i0) returns +0 + i0.
- -- csinh(+0 + i (inf)) returns (+-)0 + iNaN (where the sign of the real part of the result is
- unspecified) and raises the ''invalid'' floating-point exception.
- -- csinh(+0 + iNaN) returns (+-)0 + iNaN (where the sign of the real part of the result is
- unspecified).
-[<a name="p476" href="#p476">page 476</a>] (<a href="#Contents">Contents</a>)
-
- -- csinh(x + i (inf)) returns NaN + iNaN and raises the ''invalid'' floating-point
- exception, for positive finite x.
- -- csinh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for finite nonzero x.
- -- csinh(+(inf) + i0) returns +(inf) + i0.
- -- csinh(+(inf) + iy) returns +(inf) cis(y), for positive finite y.
- -- csinh(+(inf) + i (inf)) returns (+-)(inf) + iNaN (where the sign of the real part of the result is
- unspecified) and raises the ''invalid'' floating-point exception.
- -- csinh(+(inf) + iNaN) returns (+-)(inf) + iNaN (where the sign of the real part of the result
- is unspecified).
- -- csinh(NaN + i0) returns NaN + i0.
- -- csinh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for all nonzero numbers y.
- -- csinh(NaN + iNaN) returns NaN + iNaN.
-<a name="G.6.2.6" href="#G.6.2.6"><b> G.6.2.6 The ctanh functions</b></a>
-1 -- ctanh(conj(z)) = conj(ctanh(z))and ctanh is odd.
- -- ctanh(+0 + i0) returns +0 + i0.
- -- ctanh(x + i (inf)) returns NaN + iNaN and raises the ''invalid'' floating-point
- exception, for finite x.
- -- ctanh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for finite x.
- -- ctanh(+(inf) + iy) returns 1 + i0 sin(2y), for positive-signed finite y.
- -- ctanh(+(inf) + i (inf)) returns 1 (+-) i0 (where the sign of the imaginary part of the result
- is unspecified).
- -- ctanh(+(inf) + iNaN) returns 1 (+-) i0 (where the sign of the imaginary part of the
- result is unspecified).
- -- ctanh(NaN + i0) returns NaN + i0.
- -- ctanh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for all nonzero numbers y.
- -- ctanh(NaN + iNaN) returns NaN + iNaN.
-
-
-
-
-[<a name="p477" href="#p477">page 477</a>] (<a href="#Contents">Contents</a>)
-
-<a name="G.6.3" href="#G.6.3"><b> G.6.3 Exponential and logarithmic functions</b></a>
-<a name="G.6.3.1" href="#G.6.3.1"><b> G.6.3.1 The cexp functions</b></a>
-1 -- cexp(conj(z)) = conj(cexp(z)).
- -- cexp((+-)0 + i0) returns 1 + i0.
- -- cexp(x + i (inf)) returns NaN + iNaN and raises the ''invalid'' floating-point
- exception, for finite x.
- -- cexp(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for finite x.
- -- cexp(+(inf) + i0) returns +(inf) + i0.
- -- cexp(-(inf) + iy) returns +0 cis(y), for finite y.
- -- cexp(+(inf) + iy) returns +(inf) cis(y), for finite nonzero y.
- -- cexp(-(inf) + i (inf)) returns (+-)0 (+-) i0 (where the signs of the real and imaginary parts of
- the result are unspecified).
- -- cexp(+(inf) + i (inf)) returns (+-)(inf) + iNaN and raises the ''invalid'' floating-point
- exception (where the sign of the real part of the result is unspecified).
- -- cexp(-(inf) + iNaN) returns (+-)0 (+-) i0 (where the signs of the real and imaginary parts
- of the result are unspecified).
- -- cexp(+(inf) + iNaN) returns (+-)(inf) + iNaN (where the sign of the real part of the result
- is unspecified).
- -- cexp(NaN + i0) returns NaN + i0.
- -- cexp(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for all nonzero numbers y.
- -- cexp(NaN + iNaN) returns NaN + iNaN.
-<a name="G.6.3.2" href="#G.6.3.2"><b> G.6.3.2 The clog functions</b></a>
-1 -- clog(conj(z)) = conj(clog(z)).
- -- clog(-0 + i0) returns -(inf) + ipi and raises the ''divide-by-zero'' floating-point
- exception.
- -- clog(+0 + i0) returns -(inf) + i0 and raises the ''divide-by-zero'' floating-point
- exception.
- -- clog(x + i (inf)) returns +(inf) + ipi /2, for finite x.
- -- clog(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for finite x.
-
-[<a name="p478" href="#p478">page 478</a>] (<a href="#Contents">Contents</a>)
-
- -- clog(-(inf) + iy) returns +(inf) + ipi , for finite positive-signed y.
- -- clog(+(inf) + iy) returns +(inf) + i0, for finite positive-signed y.
- -- clog(-(inf) + i (inf)) returns +(inf) + i3pi /4.
- -- clog(+(inf) + i (inf)) returns +(inf) + ipi /4.
- -- clog((+-)(inf) + iNaN) returns +(inf) + iNaN.
- -- clog(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for finite y.
- -- clog(NaN + i (inf)) returns +(inf) + iNaN.
- -- clog(NaN + iNaN) returns NaN + iNaN.
-<a name="G.6.4" href="#G.6.4"><b> G.6.4 Power and absolute-value functions</b></a>
-<a name="G.6.4.1" href="#G.6.4.1"><b> G.6.4.1 The cpow functions</b></a>
-1 The cpow functions raise floating-point exceptions if appropriate for the calculation of
- the parts of the result, and may raise spurious exceptions.327)
-<a name="G.6.4.2" href="#G.6.4.2"><b> G.6.4.2 The csqrt functions</b></a>
-1 -- csqrt(conj(z)) = conj(csqrt(z)).
- -- csqrt((+-)0 + i0) returns +0 + i0.
- -- csqrt(x + i (inf)) returns +(inf) + i (inf), for all x (including NaN).
- -- csqrt(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for finite x.
- -- csqrt(-(inf) + iy) returns +0 + i (inf), for finite positive-signed y.
- -- csqrt(+(inf) + iy) returns +(inf) + i0, for finite positive-signed y.
- -- csqrt(-(inf) + iNaN) returns NaN (+-) i (inf) (where the sign of the imaginary part of the
- result is unspecified).
- -- csqrt(+(inf) + iNaN) returns +(inf) + iNaN.
- -- csqrt(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
- point exception, for finite y.
- -- csqrt(NaN + iNaN) returns NaN + iNaN.
-
-
-
-
- 327) This allows cpow( z , c ) to be implemented as cexp(c clog( z )) without precluding
- implementations that treat special cases more carefully.
-
-[<a name="p479" href="#p479">page 479</a>] (<a href="#Contents">Contents</a>)
-
-<a name="G.7" href="#G.7"><b> G.7 Type-generic math <tgmath.h></b></a>
-1 Type-generic macros that accept complex arguments also accept imaginary arguments. If
- an argument is imaginary, the macro expands to an expression whose type is real,
- imaginary, or complex, as appropriate for the particular function: if the argument is
- imaginary, then the types of cos, cosh, fabs, carg, cimag, and creal are real; the
- types of sin, tan, sinh, tanh, asin, atan, asinh, and atanh are imaginary; and
- the types of the others are complex.
-2 Given an imaginary argument, each of the type-generic macros cos, sin, tan, cosh,
- sinh, tanh, asin, atan, asinh, atanh is specified by a formula in terms of real
- functions:
- cos(iy) = cosh(y)
- sin(iy) = i sinh(y)
- tan(iy) = i tanh(y)
- cosh(iy) = cos(y)
- sinh(iy) = i sin(y)
- tanh(iy) = i tan(y)
- asin(iy) = i asinh(y)
- atan(iy) = i atanh(y)
- asinh(iy) = i asin(y)
- atanh(iy) = i atan(y)
-
-
-
-
-[<a name="p480" href="#p480">page 480</a>] (<a href="#Contents">Contents</a>)
-
-<a name="H" href="#H"><b> Annex H</b></a>
- (informative)
- Language independent arithmetic
-<a name="H.1" href="#H.1"><b> H.1 Introduction</b></a>
-1 This annex documents the extent to which the C language supports the ISO/IEC 10967-1
- standard for language-independent arithmetic (LIA-1). LIA-1 is more general than
- IEC 60559 (<a href="#F">annex F</a>) in that it covers integer and diverse floating-point arithmetics.
-<a name="H.2" href="#H.2"><b> H.2 Types</b></a>
-1 The relevant C arithmetic types meet the requirements of LIA-1 types if an
- implementation adds notification of exceptional arithmetic operations and meets the 1
- unit in the last place (ULP) accuracy requirement (LIA-1 subclause <a href="#5.2.8">5.2.8</a>).
-<a name="H.2.1" href="#H.2.1"><b> H.2.1 Boolean type</b></a>
-1 The LIA-1 data type Boolean is implemented by the C data type bool with values of
- true and false, all from <a href="#7.16"><stdbool.h></a>.
-<a name="H.2.2" href="#H.2.2"><b> H.2.2 Integer types</b></a>
-1 The signed C integer types int, long int, long long int, and the corresponding
- unsigned types are compatible with LIA-1. If an implementation adds support for the
- LIA-1 exceptional values ''integer_overflow'' and ''undefined'', then those types are
- LIA-1 conformant types. C's unsigned integer types are ''modulo'' in the LIA-1 sense
- in that overflows or out-of-bounds results silently wrap. An implementation that defines
- signed integer types as also being modulo need not detect integer overflow, in which case,
- only integer divide-by-zero need be detected.
-2 The parameters for the integer data types can be accessed by the following:
- maxint INT_MAX, LONG_MAX, LLONG_MAX, UINT_MAX, ULONG_MAX,
- ULLONG_MAX
- minint INT_MIN, LONG_MIN, LLONG_MIN
-3 The parameter ''bounded'' is always true, and is not provided. The parameter ''minint''
- is always 0 for the unsigned types, and is not provided for those types.
-
-
-
-
-[<a name="p481" href="#p481">page 481</a>] (<a href="#Contents">Contents</a>)
-
-<a name="H.2.2.1" href="#H.2.2.1"><b> H.2.2.1 Integer operations</b></a>
-1 The integer operations on integer types are the following:
- addI x + y
- subI x - y
- mulI x * y
- divI, divtI x / y
- remI, remtI x % y
- negI -x
- absI abs(x), labs(x), llabs(x)
- eqI x == y
- neqI x != y
- lssI x < y
- leqI x <= y
- gtrI x > y
- geqI x >= y
- where x and y are expressions of the same integer type.
-<a name="H.2.3" href="#H.2.3"><b> H.2.3 Floating-point types</b></a>
-1 The C floating-point types float, double, and long double are compatible with
- LIA-1. If an implementation adds support for the LIA-1 exceptional values
- ''underflow'', ''floating_overflow'', and ''"undefined'', then those types are conformant
- with LIA-1. An implementation that uses IEC 60559 floating-point formats and
- operations (see <a href="#F">annex F</a>) along with IEC 60559 status flags and traps has LIA-1
- conformant types.
-<a name="H.2.3.1" href="#H.2.3.1"><b> H.2.3.1 Floating-point parameters</b></a>
-1 The parameters for a floating point data type can be accessed by the following:
- r FLT_RADIX
- p FLT_MANT_DIG, DBL_MANT_DIG, LDBL_MANT_DIG
- emax FLT_MAX_EXP, DBL_MAX_EXP, LDBL_MAX_EXP
- emin FLT_MIN_EXP, DBL_MIN_EXP, LDBL_MIN_EXP
-2 The derived constants for the floating point types are accessed by the following:
-
-
-[<a name="p482" href="#p482">page 482</a>] (<a href="#Contents">Contents</a>)
-
- fmax FLT_MAX, DBL_MAX, LDBL_MAX
- fminN FLT_MIN, DBL_MIN, LDBL_MIN
- epsilon FLT_EPSILON, DBL_EPSILON, LDBL_EPSILON
- rnd_style FLT_ROUNDS
-<a name="H.2.3.2" href="#H.2.3.2"><b> H.2.3.2 Floating-point operations</b></a>
-1 The floating-point operations on floating-point types are the following:
- addF x + y
- subF x - y
- mulF x * y
- divF x / y
- negF -x
- absF fabsf(x), fabs(x), fabsl(x)
- exponentF 1.f+logbf(x), 1.0+logb(x), 1.L+logbl(x)
- scaleF scalbnf(x, n), scalbn(x, n), scalbnl(x, n),
- scalblnf(x, li), scalbln(x, li), scalblnl(x, li)
- intpartF modff(x, &y), modf(x, &y), modfl(x, &y)
- fractpartF modff(x, &y), modf(x, &y), modfl(x, &y)
- eqF x == y
- neqF x != y
- lssF x < y
- leqF x <= y
- gtrF x > y
- geqF x >= y
- where x and y are expressions of the same floating point type, n is of type int, and li
- is of type long int.
-<a name="H.2.3.3" href="#H.2.3.3"><b> H.2.3.3 Rounding styles</b></a>
-1 The C Standard requires all floating types to use the same radix and rounding style, so
- that only one identifier for each is provided to map to LIA-1.
-2 The FLT_ROUNDS parameter can be used to indicate the LIA-1 rounding styles:
- truncate FLT_ROUNDS == 0
-
-[<a name="p483" href="#p483">page 483</a>] (<a href="#Contents">Contents</a>)
-
- nearest FLT_ROUNDS == 1
- other FLT_ROUNDS != 0 && FLT_ROUNDS != 1
- provided that an implementation extends FLT_ROUNDS to cover the rounding style used
- in all relevant LIA-1 operations, not just addition as in C.
-<a name="H.2.4" href="#H.2.4"><b> H.2.4 Type conversions</b></a>
-1 The LIA-1 type conversions are the following type casts:
- cvtI' (->) I (int)i, (long int)i, (long long int)i,
- (unsigned int)i, (unsigned long int)i,
- (unsigned long long int)i
- cvtF (->) I (int)x, (long int)x, (long long int)x,
- (unsigned int)x, (unsigned long int)x,
- (unsigned long long int)x
- cvtI (->) F (float)i, (double)i, (long double)i
- cvtF' (->) F (float)x, (double)x, (long double)x
-2 In the above conversions from floating to integer, the use of (cast)x can be replaced with
- (cast)round(x), (cast)rint(x), (cast)nearbyint(x), (cast)trunc(x),
- (cast)ceil(x), or (cast)floor(x). In addition, C's floating-point to integer
- conversion functions, lrint(), llrint(), lround(), and llround(), can be
- used. They all meet LIA-1's requirements on floating to integer rounding for in-range
- values. For out-of-range values, the conversions shall silently wrap for the modulo types.
-3 The fmod() function is useful for doing silent wrapping to unsigned integer types, e.g.,
- fmod( fabs(rint(x)), 65536.0 ) or (0.0 <= (y = fmod( rint(x),
- 65536.0 )) ? y : 65536.0 + y) will compute an integer value in the range 0.0
- to 65535.0 which can then be cast to unsigned short int. But, the
- remainder() function is not useful for doing silent wrapping to signed integer types,
- e.g., remainder( rint(x), 65536.0 ) will compute an integer value in the
- range -32767.0 to +32768.0 which is not, in general, in the range of signed short
- int.
-4 C's conversions (casts) from floating-point to floating-point can meet LIA-1
- requirements if an implementation uses round-to-nearest (IEC 60559 default).
-5 C's conversions (casts) from integer to floating-point can meet LIA-1 requirements if an
- implementation uses round-to-nearest.
-
-
-
-
-[<a name="p484" href="#p484">page 484</a>] (<a href="#Contents">Contents</a>)
-
-<a name="H.3" href="#H.3"><b> H.3 Notification</b></a>
-1 Notification is the process by which a user or program is informed that an exceptional
- arithmetic operation has occurred. C's operations are compatible with LIA-1 in that C
- allows an implementation to cause a notification to occur when any arithmetic operation
- returns an exceptional value as defined in LIA-1 clause 5.
-<a name="H.3.1" href="#H.3.1"><b> H.3.1 Notification alternatives</b></a>
-1 LIA-1 requires at least the following two alternatives for handling of notifications:
- setting indicators or trap-and-terminate. LIA-1 allows a third alternative: trap-and-
- resume.
-2 An implementation need only support a given notification alternative for the entire
- program. An implementation may support the ability to switch between notification
- alternatives during execution, but is not required to do so. An implementation can
- provide separate selection for each kind of notification, but this is not required.
-3 C allows an implementation to provide notification. C's SIGFPE (for traps) and
- FE_INVALID, FE_DIVBYZERO, FE_OVERFLOW, FE_UNDERFLOW (for indicators)
- can provide LIA-1 notification.
-4 C's signal handlers are compatible with LIA-1. Default handling of SIGFPE can
- provide trap-and-terminate behavior, except for those LIA-1 operations implemented by
- math library function calls. User-provided signal handlers for SIGFPE allow for trap-
- and-resume behavior with the same constraint.
-<a name="H.3.1.1" href="#H.3.1.1"><b> H.3.1.1 Indicators</b></a>
-1 C's <a href="#7.6"><fenv.h></a> status flags are compatible with the LIA-1 indicators.
-2 The following mapping is for floating-point types:
- undefined FE_INVALID, FE_DIVBYZERO
- floating_overflow FE_OVERFLOW
- underflow FE_UNDERFLOW
-3 The floating-point indicator interrogation and manipulation operations are:
- set_indicators feraiseexcept(i)
- clear_indicators feclearexcept(i)
- test_indicators fetestexcept(i)
- current_indicators fetestexcept(FE_ALL_EXCEPT)
- where i is an expression of type int representing a subset of the LIA-1 indicators.
-4 C allows an implementation to provide the following LIA-1 required behavior: at
- program termination if any indicator is set the implementation shall send an unambiguous
-[<a name="p485" href="#p485">page 485</a>] (<a href="#Contents">Contents</a>)
-
- and ''hard to ignore'' message (see LIA-1 subclause <a href="#6.1.2">6.1.2</a>)
-5 LIA-1 does not make the distinction between floating-point and integer for ''undefined''.
- This documentation makes that distinction because <a href="#7.6"><fenv.h></a> covers only the floating-
- point indicators.
-<a name="H.3.1.2" href="#H.3.1.2"><b> H.3.1.2 Traps</b></a>
-1 C is compatible with LIA-1's trap requirements for arithmetic operations, but not for
- math library functions (which are not permitted to generate any externally visible
- exceptional conditions). An implementation can provide an alternative of notification
- through termination with a ''hard-to-ignore'' message (see LIA-1 subclause <a href="#6.1.3">6.1.3</a>).
-2 LIA-1 does not require that traps be precise.
-3 C does require that SIGFPE be the signal corresponding to arithmetic exceptions, if there
- is any signal raised for them.
-4 C supports signal handlers for SIGFPE and allows trapping of arithmetic exceptions.
- When arithmetic exceptions do trap, C's signal-handler mechanism allows trap-and-
- terminate (either default implementation behavior or user replacement for it) or trap-and-
- resume, at the programmer's option.
-
-
-
-
-[<a name="p486" href="#p486">page 486</a>] (<a href="#Contents">Contents</a>)
-
-<a name="I" href="#I"><b> Annex I</b></a>
- (informative)
- Common warnings
-1 An implementation may generate warnings in many situations, none of which are
- specified as part of this International Standard. The following are a few of the more
- common situations.
-2 -- A new struct or union type appears in a function prototype (<a href="#6.2.1">6.2.1</a>, <a href="#6.7.2.3">6.7.2.3</a>).
- -- A block with initialization of an object that has automatic storage duration is jumped
- into (<a href="#6.2.4">6.2.4</a>).
- -- An implicit narrowing conversion is encountered, such as the assignment of a long
- int or a double to an int, or a pointer to void to a pointer to any type other than
- a character type (<a href="#6.3">6.3</a>).
- -- A hexadecimal floating constant cannot be represented exactly in its evaluation format
- (<a href="#6.4.4.2">6.4.4.2</a>).
- -- An integer character constant includes more than one character or a wide character
- constant includes more than one multibyte character (<a href="#6.4.4.4">6.4.4.4</a>).
- -- The characters /* are found in a comment (<a href="#6.4.7">6.4.7</a>).
- -- An ''unordered'' binary operator (not comma, &&, or ||) contains a side effect to an
- lvalue in one operand, and a side effect to, or an access to the value of, the identical
- lvalue in the other operand (<a href="#6.5">6.5</a>).
- -- A function is called but no prototype has been supplied (<a href="#6.5.2.2">6.5.2.2</a>).
- -- The arguments in a function call do not agree in number and type with those of the
- parameters in a function definition that is not a prototype (<a href="#6.5.2.2">6.5.2.2</a>).
- -- An object is defined but not used (<a href="#6.7">6.7</a>).
- -- A value is given to an object of an enumerated type other than by assignment of an
- enumeration constant that is a member of that type, or an enumeration object that has
- the same type, or the value of a function that returns the same enumerated type
- (<a href="#6.7.2.2">6.7.2.2</a>).
- -- An aggregate has a partly bracketed initialization (<a href="#6.7.7">6.7.7</a>).
- -- A statement cannot be reached (<a href="#6.8">6.8</a>).
- -- A statement with no apparent effect is encountered (<a href="#6.8">6.8</a>).
- -- A constant expression is used as the controlling expression of a selection statement
- (<a href="#6.8.4">6.8.4</a>).
-[<a name="p487" href="#p487">page 487</a>] (<a href="#Contents">Contents</a>)
-
--- An incorrectly formed preprocessing group is encountered while skipping a
- preprocessing group (<a href="#6.10.1">6.10.1</a>).
--- An unrecognized #pragma directive is encountered (<a href="#6.10.6">6.10.6</a>).
-
-
-
-
-[<a name="p488" href="#p488">page 488</a>] (<a href="#Contents">Contents</a>)
-
-<a name="J" href="#J"><b> Annex J</b></a>
- (informative)
- Portability issues
-1 This annex collects some information about portability that appears in this International
- Standard.
-<a name="J.1" href="#J.1"><b> J.1 Unspecified behavior</b></a>
-1 The following are unspecified:
- -- The manner and timing of static initialization (<a href="#5.1.2">5.1.2</a>).
- -- The termination status returned to the hosted environment if the return type of main
- is not compatible with int (<a href="#5.1.2.2.3">5.1.2.2.3</a>).
- -- The behavior of the display device if a printing character is written when the active
- position is at the final position of a line (<a href="#5.2.2">5.2.2</a>).
- -- The behavior of the display device if a backspace character is written when the active
- position is at the initial position of a line (<a href="#5.2.2">5.2.2</a>).
- -- The behavior of the display device if a horizontal tab character is written when the
- active position is at or past the last defined horizontal tabulation position (<a href="#5.2.2">5.2.2</a>).
- -- The behavior of the display device if a vertical tab character is written when the active
- position is at or past the last defined vertical tabulation position (<a href="#5.2.2">5.2.2</a>).
- -- How an extended source character that does not correspond to a universal character
- name counts toward the significant initial characters in an external identifier (<a href="#5.2.4.1">5.2.4.1</a>).
- -- Many aspects of the representations of types (<a href="#6.2.6">6.2.6</a>).
- -- The value of padding bytes when storing values in structures or unions (<a href="#6.2.6.1">6.2.6.1</a>).
- -- The value of a union member other than the last one stored into (<a href="#6.2.6.1">6.2.6.1</a>).
- -- The representation used when storing a value in an object that has more than one
- object representation for that value (<a href="#6.2.6.1">6.2.6.1</a>).
- -- The values of any padding bits in integer representations (<a href="#6.2.6.2">6.2.6.2</a>).
- -- Whether certain operators can generate negative zeros and whether a negative zero
- becomes a normal zero when stored in an object (<a href="#6.2.6.2">6.2.6.2</a>).
- -- Whether two string literals result in distinct arrays (<a href="#6.4.5">6.4.5</a>).
- -- The order in which subexpressions are evaluated and the order in which side effects
- take place, except as specified for the function-call (), &&, ||, ?:, and comma
- operators (<a href="#6.5">6.5</a>).
-[<a name="p489" href="#p489">page 489</a>] (<a href="#Contents">Contents</a>)
-
--- The order in which the function designator, arguments, and subexpressions within the
- arguments are evaluated in a function call (<a href="#6.5.2.2">6.5.2.2</a>).
--- The order of side effects among compound literal initialization list expressions
- (<a href="#6.5.2.5">6.5.2.5</a>).
--- The order in which the operands of an assignment operator are evaluated (<a href="#6.5.16">6.5.16</a>).
--- The alignment of the addressable storage unit allocated to hold a bit-field (<a href="#6.7.2.1">6.7.2.1</a>).
--- Whether a call to an inline function uses the inline definition or the external definition
- of the function (<a href="#6.7.4">6.7.4</a>).
--- Whether or not a size expression is evaluated when it is part of the operand of a
- sizeof operator and changing the value of the size expression would not affect the
- result of the operator (<a href="#6.7.5.2">6.7.5.2</a>).
--- The order in which any side effects occur among the initialization list expressions in
- an initializer (<a href="#6.7.8">6.7.8</a>).
--- The layout of storage for function parameters (<a href="#6.9.1">6.9.1</a>).
--- When a fully expanded macro replacement list contains a function-like macro name
- as its last preprocessing token and the next preprocessing token from the source file is
- a (, and the fully expanded replacement of that macro ends with the name of the first
- macro and the next preprocessing token from the source file is again a (, whether that
- is considered a nested replacement (<a href="#6.10.3">6.10.3</a>).
--- The order in which # and ## operations are evaluated during macro substitution
- (<a href="#6.10.3.2">6.10.3.2</a>, <a href="#6.10.3.3">6.10.3.3</a>).
--- Whether errno is a macro or an identifier with external linkage (<a href="#7.5">7.5</a>).
--- The state of the floating-point status flags when execution passes from a part of the
- program translated with FENV_ACCESS ''off'' to a part translated with
- FENV_ACCESS ''on'' (<a href="#7.6.1">7.6.1</a>).
--- The order in which feraiseexcept raises floating-point exceptions, except as
- stated in <a href="#F.7.6">F.7.6</a> (<a href="#7.6.2.3">7.6.2.3</a>).
--- Whether math_errhandling is a macro or an identifier with external linkage
- (<a href="#7.12">7.12</a>).
--- The results of the frexp functions when the specified value is not a floating-point
- number (<a href="#7.12.6.4">7.12.6.4</a>).
--- The numeric result of the ilogb functions when the correct value is outside the
- range of the return type (<a href="#7.12.6.5">7.12.6.5</a>, <a href="#F.9.3.5">F.9.3.5</a>).
--- The result of rounding when the value is out of range (<a href="#7.12.9.5">7.12.9.5</a>, <a href="#7.12.9.7">7.12.9.7</a>, <a href="#F.9.6.5">F.9.6.5</a>).
-
-[<a name="p490" href="#p490">page 490</a>] (<a href="#Contents">Contents</a>)
-
--- The value stored by the remquo functions in the object pointed to by quo when y is
- zero (<a href="#7.12.10.3">7.12.10.3</a>).
--- Whether setjmp is a macro or an identifier with external linkage (<a href="#7.13">7.13</a>).
--- Whether va_copy and va_end are macros or identifiers with external linkage
- (<a href="#7.15.1">7.15.1</a>).
--- The hexadecimal digit before the decimal point when a non-normalized floating-point
- number is printed with an a or A conversion specifier (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
--- The value of the file position indicator after a successful call to the ungetc function
- for a text stream, or the ungetwc function for any stream, until all pushed-back
- characters are read or discarded (<a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.24.3.10">7.24.3.10</a>).
--- The details of the value stored by the fgetpos function (<a href="#7.19.9.1">7.19.9.1</a>).
--- The details of the value returned by the ftell function for a text stream (<a href="#7.19.9.4">7.19.9.4</a>).
--- Whether the strtod, strtof, strtold, wcstod, wcstof, and wcstold
- functions convert a minus-signed sequence to a negative number directly or by
- negating the value resulting from converting the corresponding unsigned sequence
- (<a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>).
--- The order and contiguity of storage allocated by successive calls to the calloc,
- malloc, and realloc functions (<a href="#7.20.3">7.20.3</a>).
--- The amount of storage allocated by a successful call to the calloc, malloc, or
- realloc function when 0 bytes was requested (<a href="#7.20.3">7.20.3</a>).
--- Which of two elements that compare as equal is matched by the bsearch function
- (<a href="#7.20.5.1">7.20.5.1</a>).
--- The order of two elements that compare as equal in an array sorted by the qsort
- function (<a href="#7.20.5.2">7.20.5.2</a>).
--- The encoding of the calendar time returned by the time function (<a href="#7.23.2.4">7.23.2.4</a>).
--- The characters stored by the strftime or wcsftime function if any of the time
- values being converted is outside the normal range (<a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.5.1">7.24.5.1</a>).
--- The conversion state after an encoding error occurs (<a href="#7.24.6.3.2">7.24.6.3.2</a>, <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4.1">7.24.6.4.1</a>,
- <a href="#7.24.6.4.2">7.24.6.4.2</a>,
--- The resulting value when the ''invalid'' floating-point exception is raised during
- IEC 60559 floating to integer conversion (<a href="#F.4">F.4</a>).
--- Whether conversion of non-integer IEC 60559 floating values to integer raises the
- ''inexact'' floating-point exception (<a href="#F.4">F.4</a>).
-
-
-
-[<a name="p491" href="#p491">page 491</a>] (<a href="#Contents">Contents</a>)
-
- -- Whether or when library functions in <a href="#7.12"><math.h></a> raise the ''inexact'' floating-point
- exception in an IEC 60559 conformant implementation (<a href="#F.9">F.9</a>).
- -- Whether or when library functions in <a href="#7.12"><math.h></a> raise an undeserved ''underflow''
- floating-point exception in an IEC 60559 conformant implementation (<a href="#F.9">F.9</a>).
- -- The exponent value stored by frexp for a NaN or infinity (<a href="#F.9.3.4">F.9.3.4</a>).
- -- The numeric result returned by the lrint, llrint, lround, and llround
- functions if the rounded value is outside the range of the return type (<a href="#F.9.6.5">F.9.6.5</a>, <a href="#F.9.6.7">F.9.6.7</a>).
- -- The sign of one part of the complex result of several math functions for certain
- exceptional values in IEC 60559 compatible implementations (<a href="#G.6.1.1">G.6.1.1</a>, <a href="#G.6.2.2">G.6.2.2</a>,
- <a href="#G.6.2.3">G.6.2.3</a>, <a href="#G.6.2.4">G.6.2.4</a>, <a href="#G.6.2.5">G.6.2.5</a>, <a href="#G.6.2.6">G.6.2.6</a>, <a href="#G.6.3.1">G.6.3.1</a>, <a href="#G.6.4.2">G.6.4.2</a>).
-<a name="J.2" href="#J.2"><b> J.2 Undefined behavior</b></a>
-1 The behavior is undefined in the following circumstances:
- -- A ''shall'' or ''shall not'' requirement that appears outside of a constraint is violated
- (clause 4).
- -- A nonempty source file does not end in a new-line character which is not immediately
- preceded by a backslash character or ends in a partial preprocessing token or
- comment (<a href="#5.1.1.2">5.1.1.2</a>).
- -- Token concatenation produces a character sequence matching the syntax of a
- universal character name (<a href="#5.1.1.2">5.1.1.2</a>).
- -- A program in a hosted environment does not define a function named main using one
- of the specified forms (<a href="#5.1.2.2.1">5.1.2.2.1</a>).
- -- A character not in the basic source character set is encountered in a source file, except
- in an identifier, a character constant, a string literal, a header name, a comment, or a
- preprocessing token that is never converted to a token (<a href="#5.2.1">5.2.1</a>).
- -- An identifier, comment, string literal, character constant, or header name contains an
- invalid multibyte character or does not begin and end in the initial shift state (<a href="#5.2.1.2">5.2.1.2</a>).
- -- The same identifier has both internal and external linkage in the same translation unit
- (<a href="#6.2.2">6.2.2</a>).
- -- An object is referred to outside of its lifetime (<a href="#6.2.4">6.2.4</a>).
- -- The value of a pointer to an object whose lifetime has ended is used (<a href="#6.2.4">6.2.4</a>).
- -- The value of an object with automatic storage duration is used while it is
- indeterminate (<a href="#6.2.4">6.2.4</a>, <a href="#6.7.8">6.7.8</a>, <a href="#6.8">6.8</a>).
- -- A trap representation is read by an lvalue expression that does not have character type
- (<a href="#6.2.6.1">6.2.6.1</a>).
-
-[<a name="p492" href="#p492">page 492</a>] (<a href="#Contents">Contents</a>)
-
--- A trap representation is produced by a side effect that modifies any part of the object
- using an lvalue expression that does not have character type (<a href="#6.2.6.1">6.2.6.1</a>).
--- The arguments to certain operators are such that could produce a negative zero result,
- but the implementation does not support negative zeros (<a href="#6.2.6.2">6.2.6.2</a>).
--- Two declarations of the same object or function specify types that are not compatible
- (<a href="#6.2.7">6.2.7</a>).
--- Conversion to or from an integer type produces a value outside the range that can be
- represented (<a href="#6.3.1.4">6.3.1.4</a>).
--- Demotion of one real floating type to another produces a value outside the range that
- can be represented (<a href="#6.3.1.5">6.3.1.5</a>).
--- An lvalue does not designate an object when evaluated (<a href="#6.3.2.1">6.3.2.1</a>).
--- A non-array lvalue with an incomplete type is used in a context that requires the value
- of the designated object (<a href="#6.3.2.1">6.3.2.1</a>).
--- An lvalue having array type is converted to a pointer to the initial element of the
- array, and the array object has register storage class (<a href="#6.3.2.1">6.3.2.1</a>).
--- An attempt is made to use the value of a void expression, or an implicit or explicit
- conversion (except to void) is applied to a void expression (<a href="#6.3.2.2">6.3.2.2</a>).
--- Conversion of a pointer to an integer type produces a value outside the range that can
- be represented (<a href="#6.3.2.3">6.3.2.3</a>).
--- Conversion between two pointer types produces a result that is incorrectly aligned
- (<a href="#6.3.2.3">6.3.2.3</a>).
--- A pointer is used to call a function whose type is not compatible with the pointed-to
- type (<a href="#6.3.2.3">6.3.2.3</a>).
--- An unmatched ' or " character is encountered on a logical source line during
- tokenization (<a href="#6.4">6.4</a>).
--- A reserved keyword token is used in translation phase 7 or 8 for some purpose other
- than as a keyword (<a href="#6.4.1">6.4.1</a>).
--- A universal character name in an identifier does not designate a character whose
- encoding falls into one of the specified ranges (<a href="#6.4.2.1">6.4.2.1</a>).
--- The initial character of an identifier is a universal character name designating a digit
- (<a href="#6.4.2.1">6.4.2.1</a>).
--- Two identifiers differ only in nonsignificant characters (<a href="#6.4.2.1">6.4.2.1</a>).
--- The identifier __func__ is explicitly declared (<a href="#6.4.2.2">6.4.2.2</a>).
-
-
-[<a name="p493" href="#p493">page 493</a>] (<a href="#Contents">Contents</a>)
-
--- The program attempts to modify a string literal (<a href="#6.4.5">6.4.5</a>).
--- The characters ', \, ", //, or /* occur in the sequence between the < and >
- delimiters, or the characters ', \, //, or /* occur in the sequence between the "
- delimiters, in a header name preprocessing token (<a href="#6.4.7">6.4.7</a>).
--- Between two sequence points, an object is modified more than once, or is modified
- and the prior value is read other than to determine the value to be stored (<a href="#6.5">6.5</a>).
--- An exceptional condition occurs during the evaluation of an expression (<a href="#6.5">6.5</a>).
--- An object has its stored value accessed other than by an lvalue of an allowable type
- (<a href="#6.5">6.5</a>).
--- An attempt is made to modify the result of a function call, a conditional operator, an
- assignment operator, or a comma operator, or to access it after the next sequence
- point (<a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.5.15">6.5.15</a>, <a href="#6.5.16">6.5.16</a>, <a href="#6.5.17">6.5.17</a>).
--- For a call to a function without a function prototype in scope, the number of
- arguments does not equal the number of parameters (<a href="#6.5.2.2">6.5.2.2</a>).
--- For call to a function without a function prototype in scope where the function is
- defined with a function prototype, either the prototype ends with an ellipsis or the
- types of the arguments after promotion are not compatible with the types of the
- parameters (<a href="#6.5.2.2">6.5.2.2</a>).
--- For a call to a function without a function prototype in scope where the function is not
- defined with a function prototype, the types of the arguments after promotion are not
- compatible with those of the parameters after promotion (with certain exceptions)
- (<a href="#6.5.2.2">6.5.2.2</a>).
--- A function is defined with a type that is not compatible with the type (of the
- expression) pointed to by the expression that denotes the called function (<a href="#6.5.2.2">6.5.2.2</a>).
--- The operand of the unary * operator has an invalid value (<a href="#6.5.3.2">6.5.3.2</a>).
--- A pointer is converted to other than an integer or pointer type (<a href="#6.5.4">6.5.4</a>).
--- The value of the second operand of the / or % operator is zero (<a href="#6.5.5">6.5.5</a>).
--- Addition or subtraction of a pointer into, or just beyond, an array object and an
- integer type produces a result that does not point into, or just beyond, the same array
- object (<a href="#6.5.6">6.5.6</a>).
--- Addition or subtraction of a pointer into, or just beyond, an array object and an
- integer type produces a result that points just beyond the array object and is used as
- the operand of a unary * operator that is evaluated (<a href="#6.5.6">6.5.6</a>).
--- Pointers that do not point into, or just beyond, the same array object are subtracted
- (<a href="#6.5.6">6.5.6</a>).
-
-[<a name="p494" href="#p494">page 494</a>] (<a href="#Contents">Contents</a>)
-
--- An array subscript is out of range, even if an object is apparently accessible with the
- given subscript (as in the lvalue expression a[1][7] given the declaration int
- a[4][5]) (<a href="#6.5.6">6.5.6</a>).
--- The result of subtracting two pointers is not representable in an object of type
- ptrdiff_t (<a href="#6.5.6">6.5.6</a>).
--- An expression is shifted by a negative number or by an amount greater than or equal
- to the width of the promoted expression (<a href="#6.5.7">6.5.7</a>).
--- An expression having signed promoted type is left-shifted and either the value of the
- expression is negative or the result of shifting would be not be representable in the
- promoted type (<a href="#6.5.7">6.5.7</a>).
--- Pointers that do not point to the same aggregate or union (nor just beyond the same
- array object) are compared using relational operators (<a href="#6.5.8">6.5.8</a>).
--- An object is assigned to an inexactly overlapping object or to an exactly overlapping
- object with incompatible type (<a href="#6.5.16.1">6.5.16.1</a>).
--- An expression that is required to be an integer constant expression does not have an
- integer type; has operands that are not integer constants, enumeration constants,
- character constants, sizeof expressions whose results are integer constants, or
- immediately-cast floating constants; or contains casts (outside operands to sizeof
- operators) other than conversions of arithmetic types to integer types (<a href="#6.6">6.6</a>).
--- A constant expression in an initializer is not, or does not evaluate to, one of the
- following: an arithmetic constant expression, a null pointer constant, an address
- constant, or an address constant for an object type plus or minus an integer constant
- expression (<a href="#6.6">6.6</a>).
--- An arithmetic constant expression does not have arithmetic type; has operands that
- are not integer constants, floating constants, enumeration constants, character
- constants, or sizeof expressions; or contains casts (outside operands to sizeof
- operators) other than conversions of arithmetic types to arithmetic types (<a href="#6.6">6.6</a>).
--- The value of an object is accessed by an array-subscript [], member-access . or ->,
- address &, or indirection * operator or a pointer cast in creating an address constant
- (<a href="#6.6">6.6</a>).
--- An identifier for an object is declared with no linkage and the type of the object is
- incomplete after its declarator, or after its init-declarator if it has an initializer (<a href="#6.7">6.7</a>).
--- A function is declared at block scope with an explicit storage-class specifier other
- than extern (<a href="#6.7.1">6.7.1</a>).
--- A structure or union is defined as containing no named members (<a href="#6.7.2.1">6.7.2.1</a>).
-
-
-[<a name="p495" href="#p495">page 495</a>] (<a href="#Contents">Contents</a>)
-
--- An attempt is made to access, or generate a pointer to just past, a flexible array
- member of a structure when the referenced object provides no elements for that array
- (<a href="#6.7.2.1">6.7.2.1</a>).
--- When the complete type is needed, an incomplete structure or union type is not
- completed in the same scope by another declaration of the tag that defines the content
- (<a href="#6.7.2.3">6.7.2.3</a>).
--- An attempt is made to modify an object defined with a const-qualified type through
- use of an lvalue with non-const-qualified type (<a href="#6.7.3">6.7.3</a>).
--- An attempt is made to refer to an object defined with a volatile-qualified type through
- use of an lvalue with non-volatile-qualified type (<a href="#6.7.3">6.7.3</a>).
--- The specification of a function type includes any type qualifiers (<a href="#6.7.3">6.7.3</a>).
--- Two qualified types that are required to be compatible do not have the identically
- qualified version of a compatible type (<a href="#6.7.3">6.7.3</a>).
--- An object which has been modified is accessed through a restrict-qualified pointer to
- a const-qualified type, or through a restrict-qualified pointer and another pointer that
- are not both based on the same object (<a href="#6.7.3.1">6.7.3.1</a>).
--- A restrict-qualified pointer is assigned a value based on another restricted pointer
- whose associated block neither began execution before the block associated with this
- pointer, nor ended before the assignment (<a href="#6.7.3.1">6.7.3.1</a>).
--- A function with external linkage is declared with an inline function specifier, but is
- not also defined in the same translation unit (<a href="#6.7.4">6.7.4</a>).
--- Two pointer types that are required to be compatible are not identically qualified, or
- are not pointers to compatible types (<a href="#6.7.5.1">6.7.5.1</a>).
--- The size expression in an array declaration is not a constant expression and evaluates
- at program execution time to a nonpositive value (<a href="#6.7.5.2">6.7.5.2</a>).
--- In a context requiring two array types to be compatible, they do not have compatible
- element types, or their size specifiers evaluate to unequal values (<a href="#6.7.5.2">6.7.5.2</a>).
--- A declaration of an array parameter includes the keyword static within the [ and
- ] and the corresponding argument does not provide access to the first element of an
- array with at least the specified number of elements (<a href="#6.7.5.3">6.7.5.3</a>).
--- A storage-class specifier or type qualifier modifies the keyword void as a function
- parameter type list (<a href="#6.7.5.3">6.7.5.3</a>).
--- In a context requiring two function types to be compatible, they do not have
- compatible return types, or their parameters disagree in use of the ellipsis terminator
- or the number and type of parameters (after default argument promotion, when there
- is no parameter type list or when one type is specified by a function definition with an
-[<a name="p496" href="#p496">page 496</a>] (<a href="#Contents">Contents</a>)
-
- identifier list) (<a href="#6.7.5.3">6.7.5.3</a>).
--- The value of an unnamed member of a structure or union is used (<a href="#6.7.8">6.7.8</a>).
--- The initializer for a scalar is neither a single expression nor a single expression
- enclosed in braces (<a href="#6.7.8">6.7.8</a>).
--- The initializer for a structure or union object that has automatic storage duration is
- neither an initializer list nor a single expression that has compatible structure or union
- type (<a href="#6.7.8">6.7.8</a>).
--- The initializer for an aggregate or union, other than an array initialized by a string
- literal, is not a brace-enclosed list of initializers for its elements or members (<a href="#6.7.8">6.7.8</a>).
--- An identifier with external linkage is used, but in the program there does not exist
- exactly one external definition for the identifier, or the identifier is not used and there
- exist multiple external definitions for the identifier (<a href="#6.9">6.9</a>).
--- A function definition includes an identifier list, but the types of the parameters are not
- declared in a following declaration list (<a href="#6.9.1">6.9.1</a>).
--- An adjusted parameter type in a function definition is not an object type (<a href="#6.9.1">6.9.1</a>).
--- A function that accepts a variable number of arguments is defined without a
- parameter type list that ends with the ellipsis notation (<a href="#6.9.1">6.9.1</a>).
--- The } that terminates a function is reached, and the value of the function call is used
- by the caller (<a href="#6.9.1">6.9.1</a>).
--- An identifier for an object with internal linkage and an incomplete type is declared
- with a tentative definition (<a href="#6.9.2">6.9.2</a>).
--- The token defined is generated during the expansion of a #if or #elif
- preprocessing directive, or the use of the defined unary operator does not match
- one of the two specified forms prior to macro replacement (<a href="#6.10.1">6.10.1</a>).
--- The #include preprocessing directive that results after expansion does not match
- one of the two header name forms (<a href="#6.10.2">6.10.2</a>).
--- The character sequence in an #include preprocessing directive does not start with a
- letter (<a href="#6.10.2">6.10.2</a>).
--- There are sequences of preprocessing tokens within the list of macro arguments that
- would otherwise act as preprocessing directives (<a href="#6.10.3">6.10.3</a>).
--- The result of the preprocessing operator # is not a valid character string literal
- (<a href="#6.10.3.2">6.10.3.2</a>).
--- The result of the preprocessing operator ## is not a valid preprocessing token
- (<a href="#6.10.3.3">6.10.3.3</a>).
-
-[<a name="p497" href="#p497">page 497</a>] (<a href="#Contents">Contents</a>)
-
--- The #line preprocessing directive that results after expansion does not match one of
- the two well-defined forms, or its digit sequence specifies zero or a number greater
- than 2147483647 (<a href="#6.10.4">6.10.4</a>).
--- A non-STDC #pragma preprocessing directive that is documented as causing
- translation failure or some other form of undefined behavior is encountered (<a href="#6.10.6">6.10.6</a>).
--- A #pragma STDC preprocessing directive does not match one of the well-defined
- forms (<a href="#6.10.6">6.10.6</a>).
--- The name of a predefined macro, or the identifier defined, is the subject of a
- #define or #undef preprocessing directive (<a href="#6.10.8">6.10.8</a>).
--- An attempt is made to copy an object to an overlapping object by use of a library
- function, other than as explicitly allowed (e.g., memmove) (clause 7).
--- A file with the same name as one of the standard headers, not provided as part of the
- implementation, is placed in any of the standard places that are searched for included
- source files (<a href="#7.1.2">7.1.2</a>).
--- A header is included within an external declaration or definition (<a href="#7.1.2">7.1.2</a>).
--- A function, object, type, or macro that is specified as being declared or defined by
- some standard header is used before any header that declares or defines it is included
- (<a href="#7.1.2">7.1.2</a>).
--- A standard header is included while a macro is defined with the same name as a
- keyword (<a href="#7.1.2">7.1.2</a>).
--- The program attempts to declare a library function itself, rather than via a standard
- header, but the declaration does not have external linkage (<a href="#7.1.2">7.1.2</a>).
--- The program declares or defines a reserved identifier, other than as allowed by <a href="#7.1.4">7.1.4</a>
- (<a href="#7.1.3">7.1.3</a>).
--- The program removes the definition of a macro whose name begins with an
- underscore and either an uppercase letter or another underscore (<a href="#7.1.3">7.1.3</a>).
--- An argument to a library function has an invalid value or a type not expected by a
- function with variable number of arguments (<a href="#7.1.4">7.1.4</a>).
--- The pointer passed to a library function array parameter does not have a value such
- that all address computations and object accesses are valid (<a href="#7.1.4">7.1.4</a>).
--- The macro definition of assert is suppressed in order to access an actual function
- (<a href="#7.2">7.2</a>).
--- The argument to the assert macro does not have a scalar type (<a href="#7.2">7.2</a>).
--- The CX_LIMITED_RANGE, FENV_ACCESS, or FP_CONTRACT pragma is used in
- any context other than outside all external declarations or preceding all explicit
-[<a name="p498" href="#p498">page 498</a>] (<a href="#Contents">Contents</a>)
-
- declarations and statements inside a compound statement (<a href="#7.3.4">7.3.4</a>, <a href="#7.6.1">7.6.1</a>, <a href="#7.12.2">7.12.2</a>).
--- The value of an argument to a character handling function is neither equal to the value
- of EOF nor representable as an unsigned char (<a href="#7.4">7.4</a>).
--- A macro definition of errno is suppressed in order to access an actual object, or the
- program defines an identifier with the name errno (<a href="#7.5">7.5</a>).
--- Part of the program tests floating-point status flags, sets floating-point control modes,
- or runs under non-default mode settings, but was translated with the state for the
- FENV_ACCESS pragma ''off'' (<a href="#7.6.1">7.6.1</a>).
--- The exception-mask argument for one of the functions that provide access to the
- floating-point status flags has a nonzero value not obtained by bitwise OR of the
- floating-point exception macros (<a href="#7.6.2">7.6.2</a>).
--- The fesetexceptflag function is used to set floating-point status flags that were
- not specified in the call to the fegetexceptflag function that provided the value
- of the corresponding fexcept_t object (<a href="#7.6.2.4">7.6.2.4</a>).
--- The argument to fesetenv or feupdateenv is neither an object set by a call to
- fegetenv or feholdexcept, nor is it an environment macro (<a href="#7.6.4.3">7.6.4.3</a>, <a href="#7.6.4.4">7.6.4.4</a>).
--- The value of the result of an integer arithmetic or conversion function cannot be
- represented (<a href="#7.8.2.1">7.8.2.1</a>, <a href="#7.8.2.2">7.8.2.2</a>, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.20.6.1">7.20.6.1</a>, <a href="#7.20.6.2">7.20.6.2</a>, <a href="#7.20.1">7.20.1</a>).
--- The program modifies the string pointed to by the value returned by the setlocale
- function (<a href="#7.11.1.1">7.11.1.1</a>).
--- The program modifies the structure pointed to by the value returned by the
- localeconv function (<a href="#7.11.2.1">7.11.2.1</a>).
--- A macro definition of math_errhandling is suppressed or the program defines
- an identifier with the name math_errhandling (<a href="#7.12">7.12</a>).
--- An argument to a floating-point classification or comparison macro is not of real
- floating type (<a href="#7.12.3">7.12.3</a>, <a href="#7.12.14">7.12.14</a>).
--- A macro definition of setjmp is suppressed in order to access an actual function, or
- the program defines an external identifier with the name setjmp (<a href="#7.13">7.13</a>).
--- An invocation of the setjmp macro occurs other than in an allowed context
- (<a href="#7.13.2.1">7.13.2.1</a>).
--- The longjmp function is invoked to restore a nonexistent environment (<a href="#7.13.2.1">7.13.2.1</a>).
--- After a longjmp, there is an attempt to access the value of an object of automatic
- storage class with non-volatile-qualified type, local to the function containing the
- invocation of the corresponding setjmp macro, that was changed between the
- setjmp invocation and longjmp call (<a href="#7.13.2.1">7.13.2.1</a>).
-
-[<a name="p499" href="#p499">page 499</a>] (<a href="#Contents">Contents</a>)
-
--- The program specifies an invalid pointer to a signal handler function (<a href="#7.14.1.1">7.14.1.1</a>).
--- A signal handler returns when the signal corresponded to a computational exception
- (<a href="#7.14.1.1">7.14.1.1</a>).
--- A signal occurs as the result of calling the abort or raise function, and the signal
- handler calls the raise function (<a href="#7.14.1.1">7.14.1.1</a>).
--- A signal occurs other than as the result of calling the abort or raise function, and
- the signal handler refers to an object with static storage duration other than by
- assigning a value to an object declared as volatile sig_atomic_t, or calls any
- function in the standard library other than the abort function, the _Exit function,
- or the signal function (for the same signal number) (<a href="#7.14.1.1">7.14.1.1</a>).
--- The value of errno is referred to after a signal occurred other than as the result of
- calling the abort or raise function and the corresponding signal handler obtained
- a SIG_ERR return from a call to the signal function (<a href="#7.14.1.1">7.14.1.1</a>).
--- A signal is generated by an asynchronous signal handler (<a href="#7.14.1.1">7.14.1.1</a>).
--- A function with a variable number of arguments attempts to access its varying
- arguments other than through a properly declared and initialized va_list object, or
- before the va_start macro is invoked (<a href="#7.15">7.15</a>, <a href="#7.15.1.1">7.15.1.1</a>, <a href="#7.15.1.4">7.15.1.4</a>).
--- The macro va_arg is invoked using the parameter ap that was passed to a function
- that invoked the macro va_arg with the same parameter (<a href="#7.15">7.15</a>).
--- A macro definition of va_start, va_arg, va_copy, or va_end is suppressed in
- order to access an actual function, or the program defines an external identifier with
- the name va_copy or va_end (<a href="#7.15.1">7.15.1</a>).
--- The va_start or va_copy macro is invoked without a corresponding invocation
- of the va_end macro in the same function, or vice versa (<a href="#7.15.1">7.15.1</a>, <a href="#7.15.1.2">7.15.1.2</a>, <a href="#7.15.1.3">7.15.1.3</a>,
- <a href="#7.15.1.4">7.15.1.4</a>).
--- The type parameter to the va_arg macro is not such that a pointer to an object of
- that type can be obtained simply by postfixing a * (<a href="#7.15.1.1">7.15.1.1</a>).
--- The va_arg macro is invoked when there is no actual next argument, or with a
- specified type that is not compatible with the promoted type of the actual next
- argument, with certain exceptions (<a href="#7.15.1.1">7.15.1.1</a>).
--- The va_copy or va_start macro is called to initialize a va_list that was
- previously initialized by either macro without an intervening invocation of the
- va_end macro for the same va_list (<a href="#7.15.1.2">7.15.1.2</a>, <a href="#7.15.1.4">7.15.1.4</a>).
--- The parameter parmN of a va_start macro is declared with the register
- storage class, with a function or array type, or with a type that is not compatible with
- the type that results after application of the default argument promotions (<a href="#7.15.1.4">7.15.1.4</a>).
-[<a name="p500" href="#p500">page 500</a>] (<a href="#Contents">Contents</a>)
-
--- The member designator parameter of an offsetof macro is an invalid right
- operand of the . operator for the type parameter, or designates a bit-field (<a href="#7.17">7.17</a>).
--- The argument in an instance of one of the integer-constant macros is not a decimal,
- octal, or hexadecimal constant, or it has a value that exceeds the limits for the
- corresponding type (<a href="#7.18.4">7.18.4</a>).
--- A byte input/output function is applied to a wide-oriented stream, or a wide character
- input/output function is applied to a byte-oriented stream (<a href="#7.19.2">7.19.2</a>).
--- Use is made of any portion of a file beyond the most recent wide character written to
- a wide-oriented stream (<a href="#7.19.2">7.19.2</a>).
--- The value of a pointer to a FILE object is used after the associated file is closed
- (<a href="#7.19.3">7.19.3</a>).
--- The stream for the fflush function points to an input stream or to an update stream
- in which the most recent operation was input (<a href="#7.19.5.2">7.19.5.2</a>).
--- The string pointed to by the mode argument in a call to the fopen function does not
- exactly match one of the specified character sequences (<a href="#7.19.5.3">7.19.5.3</a>).
--- An output operation on an update stream is followed by an input operation without an
- intervening call to the fflush function or a file positioning function, or an input
- operation on an update stream is followed by an output operation with an intervening
- call to a file positioning function (<a href="#7.19.5.3">7.19.5.3</a>).
--- An attempt is made to use the contents of the array that was supplied in a call to the
- setvbuf function (<a href="#7.19.5.6">7.19.5.6</a>).
--- There are insufficient arguments for the format in a call to one of the formatted
- input/output functions, or an argument does not have an appropriate type (<a href="#7.19.6.1">7.19.6.1</a>,
- <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>).
--- The format in a call to one of the formatted input/output functions or to the
- strftime or wcsftime function is not a valid multibyte character sequence that
- begins and ends in its initial shift state (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>,
- <a href="#7.24.5.1">7.24.5.1</a>).
--- In a call to one of the formatted output functions, a precision appears with a
- conversion specifier other than those described (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
--- A conversion specification for a formatted output function uses an asterisk to denote
- an argument-supplied field width or precision, but the corresponding argument is not
- provided (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
--- A conversion specification for a formatted output function uses a # or 0 flag with a
- conversion specifier other than those described (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
-
-
-[<a name="p501" href="#p501">page 501</a>] (<a href="#Contents">Contents</a>)
-
--- A conversion specification for one of the formatted input/output functions uses a
- length modifier with a conversion specifier other than those described (<a href="#7.19.6.1">7.19.6.1</a>,
- <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>).
--- An s conversion specifier is encountered by one of the formatted output functions,
- and the argument is missing the null terminator (unless a precision is specified that
- does not require null termination) (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
--- An n conversion specification for one of the formatted input/output functions includes
- any flags, an assignment-suppressing character, a field width, or a precision (<a href="#7.19.6.1">7.19.6.1</a>,
- <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>).
--- A % conversion specifier is encountered by one of the formatted input/output
- functions, but the complete conversion specification is not exactly %% (<a href="#7.19.6.1">7.19.6.1</a>,
- <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>).
--- An invalid conversion specification is found in the format for one of the formatted
- input/output functions, or the strftime or wcsftime function (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>,
- <a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#7.24.5.1">7.24.5.1</a>).
--- The number of characters transmitted by a formatted output function is greater than
- INT_MAX (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.3">7.19.6.3</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.10">7.19.6.10</a>).
--- The result of a conversion by one of the formatted input functions cannot be
- represented in the corresponding object, or the receiving object does not have an
- appropriate type (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>).
--- A c, s, or [ conversion specifier is encountered by one of the formatted input
- functions, and the array pointed to by the corresponding argument is not large enough
- to accept the input sequence (and a null terminator if the conversion specifier is s or
- [) (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>).
--- A c, s, or [ conversion specifier with an l qualifier is encountered by one of the
- formatted input functions, but the input is not a valid multibyte character sequence
- that begins in the initial shift state (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>).
--- The input item for a %p conversion by one of the formatted input functions is not a
- value converted earlier during the same program execution (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>).
--- The vfprintf, vfscanf, vprintf, vscanf, vsnprintf, vsprintf,
- vsscanf, vfwprintf, vfwscanf, vswprintf, vswscanf, vwprintf, or
- vwscanf function is called with an improperly initialized va_list argument, or
- the argument is used (other than in an invocation of va_end) after the function
- returns (<a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.9">7.19.6.9</a>, <a href="#7.19.6.10">7.19.6.10</a>, <a href="#7.19.6.11">7.19.6.11</a>, <a href="#7.19.6.12">7.19.6.12</a>, <a href="#7.19.6.13">7.19.6.13</a>, <a href="#7.19.6.14">7.19.6.14</a>,
- <a href="#7.24.2.5">7.24.2.5</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.7">7.24.2.7</a>, <a href="#7.24.2.8">7.24.2.8</a>, <a href="#7.24.2.9">7.24.2.9</a>, <a href="#7.24.2.10">7.24.2.10</a>).
--- The contents of the array supplied in a call to the fgets, gets, or fgetws function
- are used after a read error occurred (<a href="#7.19.7.2">7.19.7.2</a>, <a href="#7.19.7.7">7.19.7.7</a>, <a href="#7.24.3.2">7.24.3.2</a>).
-[<a name="p502" href="#p502">page 502</a>] (<a href="#Contents">Contents</a>)
-
--- The file position indicator for a binary stream is used after a call to the ungetc
- function where its value was zero before the call (<a href="#7.19.7.11">7.19.7.11</a>).
--- The file position indicator for a stream is used after an error occurred during a call to
- the fread or fwrite function (<a href="#7.19.8.1">7.19.8.1</a>, <a href="#7.19.8.2">7.19.8.2</a>).
--- A partial element read by a call to the fread function is used (<a href="#7.19.8.1">7.19.8.1</a>).
--- The fseek function is called for a text stream with a nonzero offset and either the
- offset was not returned by a previous successful call to the ftell function on a
- stream associated with the same file or whence is not SEEK_SET (<a href="#7.19.9.2">7.19.9.2</a>).
--- The fsetpos function is called to set a position that was not returned by a previous
- successful call to the fgetpos function on a stream associated with the same file
- (<a href="#7.19.9.3">7.19.9.3</a>).
--- A non-null pointer returned by a call to the calloc, malloc, or realloc function
- with a zero requested size is used to access an object (<a href="#7.20.3">7.20.3</a>).
--- The value of a pointer that refers to space deallocated by a call to the free or
- realloc function is used (<a href="#7.20.3">7.20.3</a>).
--- The pointer argument to the free or realloc function does not match a pointer
- earlier returned by calloc, malloc, or realloc, or the space has been
- deallocated by a call to free or realloc (<a href="#7.20.3.2">7.20.3.2</a>, <a href="#7.20.3.4">7.20.3.4</a>).
--- The value of the object allocated by the malloc function is used (<a href="#7.20.3.3">7.20.3.3</a>).
--- The value of any bytes in a new object allocated by the realloc function beyond
- the size of the old object are used (<a href="#7.20.3.4">7.20.3.4</a>).
--- The program executes more than one call to the exit function (<a href="#7.20.4.3">7.20.4.3</a>).
--- During the call to a function registered with the atexit function, a call is made to
- the longjmp function that would terminate the call to the registered function
- (<a href="#7.20.4.3">7.20.4.3</a>).
--- The string set up by the getenv or strerror function is modified by the program
- (<a href="#7.20.4.5">7.20.4.5</a>, <a href="#7.21.6.2">7.21.6.2</a>).
--- A command is executed through the system function in a way that is documented as
- causing termination or some other form of undefined behavior (<a href="#7.20.4.6">7.20.4.6</a>).
--- A searching or sorting utility function is called with an invalid pointer argument, even
- if the number of elements is zero (<a href="#7.20.5">7.20.5</a>).
--- The comparison function called by a searching or sorting utility function alters the
- contents of the array being searched or sorted, or returns ordering values
- inconsistently (<a href="#7.20.5">7.20.5</a>).
-
-
-[<a name="p503" href="#p503">page 503</a>] (<a href="#Contents">Contents</a>)
-
--- The array being searched by the bsearch function does not have its elements in
- proper order (<a href="#7.20.5.1">7.20.5.1</a>).
--- The current conversion state is used by a multibyte/wide character conversion
- function after changing the LC_CTYPE category (<a href="#7.20.7">7.20.7</a>).
--- A string or wide string utility function is instructed to access an array beyond the end
- of an object (<a href="#7.21.1">7.21.1</a>, <a href="#7.24.4">7.24.4</a>).
--- A string or wide string utility function is called with an invalid pointer argument, even
- if the length is zero (<a href="#7.21.1">7.21.1</a>, <a href="#7.24.4">7.24.4</a>).
--- The contents of the destination array are used after a call to the strxfrm,
- strftime, wcsxfrm, or wcsftime function in which the specified length was
- too small to hold the entire null-terminated result (<a href="#7.21.4.5">7.21.4.5</a>, <a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.4.4.4">7.24.4.4.4</a>,
- <a href="#7.24.5.1">7.24.5.1</a>).
--- The first argument in the very first call to the strtok or wcstok is a null pointer
- (<a href="#7.21.5.8">7.21.5.8</a>, <a href="#7.24.4.5.7">7.24.4.5.7</a>).
--- The type of an argument to a type-generic macro is not compatible with the type of
- the corresponding parameter of the selected function (<a href="#7.22">7.22</a>).
--- A complex argument is supplied for a generic parameter of a type-generic macro that
- has no corresponding complex function (<a href="#7.22">7.22</a>).
--- The argument corresponding to an s specifier without an l qualifier in a call to the
- fwprintf function does not point to a valid multibyte character sequence that
- begins in the initial shift state (<a href="#7.24.2.11">7.24.2.11</a>).
--- In a call to the wcstok function, the object pointed to by ptr does not have the
- value stored by the previous call for the same wide string (<a href="#7.24.4.5.7">7.24.4.5.7</a>).
--- An mbstate_t object is used inappropriately (<a href="#7.24.6">7.24.6</a>).
--- The value of an argument of type wint_t to a wide character classification or case
- mapping function is neither equal to the value of WEOF nor representable as a
- wchar_t (<a href="#7.25.1">7.25.1</a>).
--- The iswctype function is called using a different LC_CTYPE category from the
- one in effect for the call to the wctype function that returned the description
- (<a href="#7.25.2.2.1">7.25.2.2.1</a>).
--- The towctrans function is called using a different LC_CTYPE category from the
- one in effect for the call to the wctrans function that returned the description
- (<a href="#7.25.3.2.1">7.25.3.2.1</a>).
-
-
-
-
-[<a name="p504" href="#p504">page 504</a>] (<a href="#Contents">Contents</a>)
-
-<a name="J.3" href="#J.3"><b> J.3 Implementation-defined behavior</b></a>
-1 A conforming implementation is required to document its choice of behavior in each of
- the areas listed in this subclause. The following are implementation-defined:
-<a name="J.3.1" href="#J.3.1"><b> J.3.1 Translation</b></a>
-1 -- How a diagnostic is identified (<a href="#3.10">3.10</a>, <a href="#5.1.1.3">5.1.1.3</a>).
- -- Whether each nonempty sequence of white-space characters other than new-line is
- retained or replaced by one space character in translation phase 3 (<a href="#5.1.1.2">5.1.1.2</a>).
-<a name="J.3.2" href="#J.3.2"><b> J.3.2 Environment</b></a>
-1 -- The mapping between physical source file multibyte characters and the source
- character set in translation phase 1 (<a href="#5.1.1.2">5.1.1.2</a>).
- -- The name and type of the function called at program startup in a freestanding
- environment (<a href="#5.1.2.1">5.1.2.1</a>).
- -- The effect of program termination in a freestanding environment (<a href="#5.1.2.1">5.1.2.1</a>).
- -- An alternative manner in which the main function may be defined (<a href="#5.1.2.2.1">5.1.2.2.1</a>).
- -- The values given to the strings pointed to by the argv argument to main (<a href="#5.1.2.2.1">5.1.2.2.1</a>).
- -- What constitutes an interactive device (<a href="#5.1.2.3">5.1.2.3</a>).
- -- The set of signals, their semantics, and their default handling (<a href="#7.14">7.14</a>).
- -- Signal values other than SIGFPE, SIGILL, and SIGSEGV that correspond to a
- computational exception (<a href="#7.14.1.1">7.14.1.1</a>).
- -- Signals for which the equivalent of signal(sig, SIG_IGN); is executed at
- program startup (<a href="#7.14.1.1">7.14.1.1</a>).
- -- The set of environment names and the method for altering the environment list used
- by the getenv function (<a href="#7.20.4.5">7.20.4.5</a>).
- -- The manner of execution of the string by the system function (<a href="#7.20.4.6">7.20.4.6</a>).
-<a name="J.3.3" href="#J.3.3"><b> J.3.3 Identifiers</b></a>
-1 -- Which additional multibyte characters may appear in identifiers and their
- correspondence to universal character names (<a href="#6.4.2">6.4.2</a>).
- -- The number of significant initial characters in an identifier (<a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2">6.4.2</a>).
-
-
-
-
-[<a name="p505" href="#p505">page 505</a>] (<a href="#Contents">Contents</a>)
-
-<a name="J.3.4" href="#J.3.4"><b> J.3.4 Characters</b></a>
-1 -- The number of bits in a byte (<a href="#3.6">3.6</a>).
- -- The values of the members of the execution character set (<a href="#5.2.1">5.2.1</a>).
- -- The unique value of the member of the execution character set produced for each of
- the standard alphabetic escape sequences (<a href="#5.2.2">5.2.2</a>).
- -- The value of a char object into which has been stored any character other than a
- member of the basic execution character set (<a href="#6.2.5">6.2.5</a>).
- -- Which of signed char or unsigned char has the same range, representation,
- and behavior as ''plain'' char (<a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>).
- -- The mapping of members of the source character set (in character constants and string
- literals) to members of the execution character set (<a href="#6.4.4.4">6.4.4.4</a>, <a href="#5.1.1.2">5.1.1.2</a>).
- -- The value of an integer character constant containing more than one character or
- containing a character or escape sequence that does not map to a single-byte
- execution character (<a href="#6.4.4.4">6.4.4.4</a>).
- -- The value of a wide character constant containing more than one multibyte character,
- or containing a multibyte character or escape sequence not represented in the
- extended execution character set (<a href="#6.4.4.4">6.4.4.4</a>).
- -- The current locale used to convert a wide character constant consisting of a single
- multibyte character that maps to a member of the extended execution character set
- into a corresponding wide character code (<a href="#6.4.4.4">6.4.4.4</a>).
- -- The current locale used to convert a wide string literal into corresponding wide
- character codes (<a href="#6.4.5">6.4.5</a>).
- -- The value of a string literal containing a multibyte character or escape sequence not
- represented in the execution character set (<a href="#6.4.5">6.4.5</a>).
-<a name="J.3.5" href="#J.3.5"><b> J.3.5 Integers</b></a>
-1 -- Any extended integer types that exist in the implementation (<a href="#6.2.5">6.2.5</a>).
- -- Whether signed integer types are represented using sign and magnitude, two's
- complement, or ones' complement, and whether the extraordinary value is a trap
- representation or an ordinary value (<a href="#6.2.6.2">6.2.6.2</a>).
- -- The rank of any extended integer type relative to another extended integer type with
- the same precision (<a href="#6.3.1.1">6.3.1.1</a>).
- -- The result of, or the signal raised by, converting an integer to a signed integer type
- when the value cannot be represented in an object of that type (<a href="#6.3.1.3">6.3.1.3</a>).
-
-
-
-[<a name="p506" href="#p506">page 506</a>] (<a href="#Contents">Contents</a>)
-
- -- The results of some bitwise operations on signed integers (<a href="#6.5">6.5</a>).
-<a name="J.3.6" href="#J.3.6"><b> J.3.6 Floating point</b></a>
-1 -- The accuracy of the floating-point operations and of the library functions in
- <a href="#7.12"><math.h></a> and <a href="#7.3"><complex.h></a> that return floating-point results (<a href="#5.2.4.2.2">5.2.4.2.2</a>).
- -- The accuracy of the conversions between floating-point internal representations and
- string representations performed by the library functions in <a href="#7.19"><stdio.h></a>,
- <a href="#7.20"><stdlib.h></a>, and <a href="#7.24"><wchar.h></a> (<a href="#5.2.4.2.2">5.2.4.2.2</a>).
- -- The rounding behaviors characterized by non-standard values of FLT_ROUNDS
- (<a href="#5.2.4.2.2">5.2.4.2.2</a>).
- -- The evaluation methods characterized by non-standard negative values of
- FLT_EVAL_METHOD (<a href="#5.2.4.2.2">5.2.4.2.2</a>).
- -- The direction of rounding when an integer is converted to a floating-point number that
- cannot exactly represent the original value (<a href="#6.3.1.4">6.3.1.4</a>).
- -- The direction of rounding when a floating-point number is converted to a narrower
- floating-point number (<a href="#6.3.1.5">6.3.1.5</a>).
- -- How the nearest representable value or the larger or smaller representable value
- immediately adjacent to the nearest representable value is chosen for certain floating
- constants (<a href="#6.4.4.2">6.4.4.2</a>).
- -- Whether and how floating expressions are contracted when not disallowed by the
- FP_CONTRACT pragma (<a href="#6.5">6.5</a>).
- -- The default state for the FENV_ACCESS pragma (<a href="#7.6.1">7.6.1</a>).
- -- Additional floating-point exceptions, rounding modes, environments, and
- classifications, and their macro names (<a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>).
- -- The default state for the FP_CONTRACT pragma (<a href="#7.12.2">7.12.2</a>). *
-<a name="J.3.7" href="#J.3.7"><b> J.3.7 Arrays and pointers</b></a>
-1 -- The result of converting a pointer to an integer or vice versa (<a href="#6.3.2.3">6.3.2.3</a>).
- -- The size of the result of subtracting two pointers to elements of the same array
- (<a href="#6.5.6">6.5.6</a>).
-
-
-
-
-[<a name="p507" href="#p507">page 507</a>] (<a href="#Contents">Contents</a>)
-
-<a name="J.3.8" href="#J.3.8"><b> J.3.8 Hints</b></a>
-1 -- The extent to which suggestions made by using the register storage-class
- specifier are effective (<a href="#6.7.1">6.7.1</a>).
- -- The extent to which suggestions made by using the inline function specifier are
- effective (<a href="#6.7.4">6.7.4</a>).
-<a name="J.3.9" href="#J.3.9"><b> J.3.9 Structures, unions, enumerations, and bit-fields</b></a>
-1 -- Whether a ''plain'' int bit-field is treated as a signed int bit-field or as an
- unsigned int bit-field (<a href="#6.7.2">6.7.2</a>, <a href="#6.7.2.1">6.7.2.1</a>).
- -- Allowable bit-field types other than _Bool, signed int, and unsigned int
- (<a href="#6.7.2.1">6.7.2.1</a>).
- -- Whether a bit-field can straddle a storage-unit boundary (<a href="#6.7.2.1">6.7.2.1</a>).
- -- The order of allocation of bit-fields within a unit (<a href="#6.7.2.1">6.7.2.1</a>).
- -- The alignment of non-bit-field members of structures (<a href="#6.7.2.1">6.7.2.1</a>). This should present
- no problem unless binary data written by one implementation is read by another.
- -- The integer type compatible with each enumerated type (<a href="#6.7.2.2">6.7.2.2</a>).
-<a name="J.3.10" href="#J.3.10"><b> J.3.10 Qualifiers</b></a>
-1 -- What constitutes an access to an object that has volatile-qualified type (<a href="#6.7.3">6.7.3</a>).
-<a name="J.3.11" href="#J.3.11"><b> J.3.11 Preprocessing directives</b></a>
-1 -- The locations within #pragma directives where header name preprocessing tokens
- are recognized (<a href="#6.4">6.4</a>, <a href="#6.4.7">6.4.7</a>).
- -- How sequences in both forms of header names are mapped to headers or external
- source file names (<a href="#6.4.7">6.4.7</a>).
- -- Whether the value of a character constant in a constant expression that controls
- conditional inclusion matches the value of the same character constant in the
- execution character set (<a href="#6.10.1">6.10.1</a>).
- -- Whether the value of a single-character character constant in a constant expression
- that controls conditional inclusion may have a negative value (<a href="#6.10.1">6.10.1</a>).
- -- The places that are searched for an included < > delimited header, and how the places
- are specified or the header is identified (<a href="#6.10.2">6.10.2</a>).
- -- How the named source file is searched for in an included " " delimited header
- (<a href="#6.10.2">6.10.2</a>).
- -- The method by which preprocessing tokens (possibly resulting from macro
- expansion) in a #include directive are combined into a header name (<a href="#6.10.2">6.10.2</a>).
-
-[<a name="p508" href="#p508">page 508</a>] (<a href="#Contents">Contents</a>)
-
- -- The nesting limit for #include processing (<a href="#6.10.2">6.10.2</a>).
- -- Whether the # operator inserts a \ character before the \ character that begins a
- universal character name in a character constant or string literal (<a href="#6.10.3.2">6.10.3.2</a>).
- -- The behavior on each recognized non-STDC #pragma directive (<a href="#6.10.6">6.10.6</a>).
- -- The definitions for __DATE__ and __TIME__ when respectively, the date and
- time of translation are not available (<a href="#6.10.8">6.10.8</a>).
-<a name="J.3.12" href="#J.3.12"><b> J.3.12 Library functions</b></a>
-1 -- Any library facilities available to a freestanding program, other than the minimal set
- required by clause 4 (<a href="#5.1.2.1">5.1.2.1</a>).
- -- The format of the diagnostic printed by the assert macro (<a href="#7.2.1.1">7.2.1.1</a>).
- -- The representation of the floating-point status flags stored by the
- fegetexceptflag function (<a href="#7.6.2.2">7.6.2.2</a>).
- -- Whether the feraiseexcept function raises the ''inexact'' floating-point
- exception in addition to the ''overflow'' or ''underflow'' floating-point exception
- (<a href="#7.6.2.3">7.6.2.3</a>).
- -- Strings other than "C" and "" that may be passed as the second argument to the
- setlocale function (<a href="#7.11.1.1">7.11.1.1</a>).
- -- The types defined for float_t and double_t when the value of the
- FLT_EVAL_METHOD macro is less than 0 (<a href="#7.12">7.12</a>).
- -- Domain errors for the mathematics functions, other than those required by this
- International Standard (<a href="#7.12.1">7.12.1</a>).
- -- The values returned by the mathematics functions on domain errors (<a href="#7.12.1">7.12.1</a>).
- -- The values returned by the mathematics functions on underflow range errors, whether
- errno is set to the value of the macro ERANGE when the integer expression
- math_errhandling & MATH_ERRNO is nonzero, and whether the ''underflow''
- floating-point exception is raised when the integer expression math_errhandling
- & MATH_ERREXCEPT is nonzero. (<a href="#7.12.1">7.12.1</a>).
- -- Whether a domain error occurs or zero is returned when an fmod function has a
- second argument of zero (<a href="#7.12.10.1">7.12.10.1</a>).
- -- Whether a domain error occurs or zero is returned when a remainder function has
- a second argument of zero (<a href="#7.12.10.2">7.12.10.2</a>).
- -- The base-2 logarithm of the modulus used by the remquo functions in reducing the
- quotient (<a href="#7.12.10.3">7.12.10.3</a>).
-
-
-
-[<a name="p509" href="#p509">page 509</a>] (<a href="#Contents">Contents</a>)
-
--- Whether a domain error occurs or zero is returned when a remquo function has a
- second argument of zero (<a href="#7.12.10.3">7.12.10.3</a>).
--- Whether the equivalent of signal(sig, SIG_DFL); is executed prior to the call
- of a signal handler, and, if not, the blocking of signals that is performed (<a href="#7.14.1.1">7.14.1.1</a>).
--- The null pointer constant to which the macro NULL expands (<a href="#7.17">7.17</a>).
--- Whether the last line of a text stream requires a terminating new-line character
- (<a href="#7.19.2">7.19.2</a>).
--- Whether space characters that are written out to a text stream immediately before a
- new-line character appear when read in (<a href="#7.19.2">7.19.2</a>).
--- The number of null characters that may be appended to data written to a binary
- stream (<a href="#7.19.2">7.19.2</a>).
--- Whether the file position indicator of an append-mode stream is initially positioned at
- the beginning or end of the file (<a href="#7.19.3">7.19.3</a>).
--- Whether a write on a text stream causes the associated file to be truncated beyond that
- point (<a href="#7.19.3">7.19.3</a>).
--- The characteristics of file buffering (<a href="#7.19.3">7.19.3</a>).
--- Whether a zero-length file actually exists (<a href="#7.19.3">7.19.3</a>).
--- The rules for composing valid file names (<a href="#7.19.3">7.19.3</a>).
--- Whether the same file can be simultaneously open multiple times (<a href="#7.19.3">7.19.3</a>).
--- The nature and choice of encodings used for multibyte characters in files (<a href="#7.19.3">7.19.3</a>).
--- The effect of the remove function on an open file (<a href="#7.19.4.1">7.19.4.1</a>).
--- The effect if a file with the new name exists prior to a call to the rename function
- (<a href="#7.19.4.2">7.19.4.2</a>).
--- Whether an open temporary file is removed upon abnormal program termination
- (<a href="#7.19.4.3">7.19.4.3</a>).
--- Which changes of mode are permitted (if any), and under what circumstances
- (<a href="#7.19.5.4">7.19.5.4</a>).
--- The style used to print an infinity or NaN, and the meaning of any n-char or n-wchar
- sequence printed for a NaN (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
--- The output for %p conversion in the fprintf or fwprintf function (<a href="#7.19.6.1">7.19.6.1</a>,
- <a href="#7.24.2.1">7.24.2.1</a>).
--- The interpretation of a - character that is neither the first nor the last character, nor
- the second where a ^ character is the first, in the scanlist for %[ conversion in the
- fscanf or fwscanf function (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>).
-[<a name="p510" href="#p510">page 510</a>] (<a href="#Contents">Contents</a>)
-
- -- The set of sequences matched by a %p conversion and the interpretation of the
- corresponding input item in the fscanf or fwscanf function (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>).
- -- The value to which the macro errno is set by the fgetpos, fsetpos, or ftell
- functions on failure (<a href="#7.19.9.1">7.19.9.1</a>, <a href="#7.19.9.3">7.19.9.3</a>, <a href="#7.19.9.4">7.19.9.4</a>).
- -- The meaning of any n-char or n-wchar sequence in a string representing a NaN that is
- converted by the strtod, strtof, strtold, wcstod, wcstof, or wcstold
- function (<a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>).
- -- Whether or not the strtod, strtof, strtold, wcstod, wcstof, or wcstold
- function sets errno to ERANGE when underflow occurs (<a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>).
- -- Whether the calloc, malloc, and realloc functions return a null pointer or a
- pointer to an allocated object when the size requested is zero (<a href="#7.20.3">7.20.3</a>).
- -- Whether open streams with unwritten buffered data are flushed, open streams are
- closed, or temporary files are removed when the abort or _Exit function is called
- (<a href="#7.20.4.1">7.20.4.1</a>, <a href="#7.20.4.4">7.20.4.4</a>).
- -- The termination status returned to the host environment by the abort, exit, or
- _Exit function (<a href="#7.20.4.1">7.20.4.1</a>, <a href="#7.20.4.3">7.20.4.3</a>, <a href="#7.20.4.4">7.20.4.4</a>).
- -- The value returned by the system function when its argument is not a null pointer
- (<a href="#7.20.4.6">7.20.4.6</a>).
- -- The local time zone and Daylight Saving Time (<a href="#7.23.1">7.23.1</a>).
- -- The range and precision of times representable in clock_t and time_t (<a href="#7.23">7.23</a>).
- -- The era for the clock function (<a href="#7.23.2.1">7.23.2.1</a>).
- -- The replacement string for the %Z specifier to the strftime, and wcsftime
- functions in the "C" locale (<a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.5.1">7.24.5.1</a>).
- -- Whether the functions in <a href="#7.12"><math.h></a> honor the rounding direction mode in an
- IEC 60559 conformant implementation, unless explicitly specified otherwise (<a href="#F.9">F.9</a>).
-<a name="J.3.13" href="#J.3.13"><b> J.3.13 Architecture</b></a>
-1 -- The values or expressions assigned to the macros specified in the headers
- <a href="#7.7"><float.h></a>, <a href="#7.10"><limits.h></a>, and <a href="#7.18"><stdint.h></a> (<a href="#5.2.4.2">5.2.4.2</a>, <a href="#7.18.2">7.18.2</a>, <a href="#7.18.3">7.18.3</a>).
- -- The number, order, and encoding of bytes in any object (when not explicitly specified
- in this International Standard) (<a href="#6.2.6.1">6.2.6.1</a>).
- -- The value of the result of the sizeof operator (<a href="#6.5.3.4">6.5.3.4</a>).
-
-
-
-
-[<a name="p511" href="#p511">page 511</a>] (<a href="#Contents">Contents</a>)
-
-<a name="J.4" href="#J.4"><b> J.4 Locale-specific behavior</b></a>
-1 The following characteristics of a hosted environment are locale-specific and are required
- to be documented by the implementation:
- -- Additional members of the source and execution character sets beyond the basic
- character set (<a href="#5.2.1">5.2.1</a>).
- -- The presence, meaning, and representation of additional multibyte characters in the
- execution character set beyond the basic character set (<a href="#5.2.1.2">5.2.1.2</a>).
- -- The shift states used for the encoding of multibyte characters (<a href="#5.2.1.2">5.2.1.2</a>).
- -- The direction of writing of successive printing characters (<a href="#5.2.2">5.2.2</a>).
- -- The decimal-point character (<a href="#7.1.1">7.1.1</a>).
- -- The set of printing characters (<a href="#7.4">7.4</a>, <a href="#7.25.2">7.25.2</a>).
- -- The set of control characters (<a href="#7.4">7.4</a>, <a href="#7.25.2">7.25.2</a>).
- -- The sets of characters tested for by the isalpha, isblank, islower, ispunct,
- isspace, isupper, iswalpha, iswblank, iswlower, iswpunct,
- iswspace, or iswupper functions (<a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.3">7.4.1.3</a>, <a href="#7.4.1.7">7.4.1.7</a>, <a href="#7.4.1.9">7.4.1.9</a>, <a href="#7.4.1.10">7.4.1.10</a>,
- <a href="#7.4.1.11">7.4.1.11</a>, <a href="#7.25.2.1.2">7.25.2.1.2</a>, <a href="#7.25.2.1.3">7.25.2.1.3</a>, <a href="#7.25.2.1.7">7.25.2.1.7</a>, <a href="#7.25.2.1.9">7.25.2.1.9</a>, <a href="#7.25.2.1.10">7.25.2.1.10</a>, <a href="#7.25.2.1.11">7.25.2.1.11</a>).
- -- The native environment (<a href="#7.11.1.1">7.11.1.1</a>).
- -- Additional subject sequences accepted by the numeric conversion functions (<a href="#7.20.1">7.20.1</a>,
- <a href="#7.24.4.1">7.24.4.1</a>).
- -- The collation sequence of the execution character set (<a href="#7.21.4.3">7.21.4.3</a>, <a href="#7.24.4.4.2">7.24.4.4.2</a>).
- -- The contents of the error message strings set up by the strerror function
- (<a href="#7.21.6.2">7.21.6.2</a>).
- -- The formats for time and date (<a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.5.1">7.24.5.1</a>).
- -- Character mappings that are supported by the towctrans function (<a href="#7.25.1">7.25.1</a>).
- -- Character classifications that are supported by the iswctype function (<a href="#7.25.1">7.25.1</a>).
-
-
-
-
-[<a name="p512" href="#p512">page 512</a>] (<a href="#Contents">Contents</a>)
-
-<a name="J.5" href="#J.5"><b> J.5 Common extensions</b></a>
-1 The following extensions are widely used in many systems, but are not portable to all
- implementations. The inclusion of any extension that may cause a strictly conforming
- program to become invalid renders an implementation nonconforming. Examples of such
- extensions are new keywords, extra library functions declared in standard headers, or
- predefined macros with names that do not begin with an underscore.
-<a name="J.5.1" href="#J.5.1"><b> J.5.1 Environment arguments</b></a>
-1 In a hosted environment, the main function receives a third argument, char *envp[],
- that points to a null-terminated array of pointers to char, each of which points to a string
- that provides information about the environment for this execution of the program
- (<a href="#5.1.2.2.1">5.1.2.2.1</a>).
-<a name="J.5.2" href="#J.5.2"><b> J.5.2 Specialized identifiers</b></a>
-1 Characters other than the underscore _, letters, and digits, that are not part of the basic
- source character set (such as the dollar sign $, or characters in national character sets)
- may appear in an identifier (<a href="#6.4.2">6.4.2</a>).
-<a name="J.5.3" href="#J.5.3"><b> J.5.3 Lengths and cases of identifiers</b></a>
-1 All characters in identifiers (with or without external linkage) are significant (<a href="#6.4.2">6.4.2</a>).
-<a name="J.5.4" href="#J.5.4"><b> J.5.4 Scopes of identifiers</b></a>
-1 A function identifier, or the identifier of an object the declaration of which contains the
- keyword extern, has file scope (<a href="#6.2.1">6.2.1</a>).
-<a name="J.5.5" href="#J.5.5"><b> J.5.5 Writable string literals</b></a>
-1 String literals are modifiable (in which case, identical string literals should denote distinct
- objects) (<a href="#6.4.5">6.4.5</a>).
-<a name="J.5.6" href="#J.5.6"><b> J.5.6 Other arithmetic types</b></a>
-1 Additional arithmetic types, such as __int128 or double double, and their
- appropriate conversions are defined (<a href="#6.2.5">6.2.5</a>, <a href="#6.3.1">6.3.1</a>). Additional floating types may have
- more range or precision than long double, may be used for evaluating expressions of
- other floating types, and may be used to define float_t or double_t.
-
-
-
-
-[<a name="p513" href="#p513">page 513</a>] (<a href="#Contents">Contents</a>)
-
-<a name="J.5.7" href="#J.5.7"><b> J.5.7 Function pointer casts</b></a>
-1 A pointer to an object or to void may be cast to a pointer to a function, allowing data to
- be invoked as a function (<a href="#6.5.4">6.5.4</a>).
-2 A pointer to a function may be cast to a pointer to an object or to void, allowing a
- function to be inspected or modified (for example, by a debugger) (<a href="#6.5.4">6.5.4</a>).
-<a name="J.5.8" href="#J.5.8"><b> J.5.8 Extended bit-field types</b></a>
-1 A bit-field may be declared with a type other than _Bool, unsigned int, or
- signed int, with an appropriate maximum width (<a href="#6.7.2.1">6.7.2.1</a>).
-<a name="J.5.9" href="#J.5.9"><b> J.5.9 The fortran keyword</b></a>
-1 The fortran function specifier may be used in a function declaration to indicate that
- calls suitable for FORTRAN should be generated, or that a different representation for the
- external name is to be generated (<a href="#6.7.4">6.7.4</a>).
-<a name="J.5.10" href="#J.5.10"><b> J.5.10 The asm keyword</b></a>
-1 The asm keyword may be used to insert assembly language directly into the translator
- output (<a href="#6.8">6.8</a>). The most common implementation is via a statement of the form:
- asm ( character-string-literal );
-<a name="J.5.11" href="#J.5.11"><b> J.5.11 Multiple external definitions</b></a>
-1 There may be more than one external definition for the identifier of an object, with or
- without the explicit use of the keyword extern; if the definitions disagree, or more than
- one is initialized, the behavior is undefined (<a href="#6.9.2">6.9.2</a>).
-<a name="J.5.12" href="#J.5.12"><b> J.5.12 Predefined macro names</b></a>
-1 Macro names that do not begin with an underscore, describing the translation and
- execution environments, are defined by the implementation before translation begins
- (<a href="#6.10.8">6.10.8</a>).
-<a name="J.5.13" href="#J.5.13"><b> J.5.13 Floating-point status flags</b></a>
-1 If any floating-point status flags are set on normal termination after all calls to functions
- registered by the atexit function have been made (see <a href="#7.20.4.3">7.20.4.3</a>), the implementation
- writes some diagnostics indicating the fact to the stderr stream, if it is still open,
-
-
-
-
-[<a name="p514" href="#p514">page 514</a>] (<a href="#Contents">Contents</a>)
-
-<a name="J.5.14" href="#J.5.14"><b> J.5.14 Extra arguments for signal handlers</b></a>
-1 Handlers for specific signals are called with extra arguments in addition to the signal
- number (<a href="#7.14.1.1">7.14.1.1</a>).
-<a name="J.5.15" href="#J.5.15"><b> J.5.15 Additional stream types and file-opening modes</b></a>
-1 Additional mappings from files to streams are supported (<a href="#7.19.2">7.19.2</a>).
-2 Additional file-opening modes may be specified by characters appended to the mode
- argument of the fopen function (<a href="#7.19.5.3">7.19.5.3</a>).
-<a name="J.5.16" href="#J.5.16"><b> J.5.16 Defined file position indicator</b></a>
-1 The file position indicator is decremented by each successful call to the ungetc or
- ungetwc function for a text stream, except if its value was zero before a call (<a href="#7.19.7.11">7.19.7.11</a>,
-<a name="7.24.3.10)" href="#7.24.3.10)"><b> 7.24.3.10).</b></a>
-<a name="J.5.17" href="#J.5.17"><b> J.5.17 Math error reporting</b></a>
-1 Functions declared in <a href="#7.3"><complex.h></a> and <a href="#7.12"><math.h></a> raise SIGFPE to report errors
- instead of, or in addition to, setting errno or raising floating-point exceptions (<a href="#7.3">7.3</a>,
-<a name="7.12)" href="#7.12)"><b> 7.12).</b></a>
-
-
-
-
-[<a name="p515" href="#p515">page 515</a>] (<a href="#Contents">Contents</a>)
-
-
-<a name="Bibliography" href="#Bibliography"><b> Bibliography</b></a>
- 1. ''The C Reference Manual'' by Dennis M. Ritchie, a version of which was
- published in The C Programming Language by Brian W. Kernighan and Dennis
- M. Ritchie, Prentice-Hall, Inc., (1978). Copyright owned by AT&T.
- 2. 1984 /usr/group Standard by the /usr/group Standards Committee, Santa Clara,
- California, USA, November 1984.
- 3. ANSI X3/TR-1-82 (1982), American National Dictionary for Information
- Processing Systems, Information Processing Systems Technical Report.
- 4. ANSI/IEEE 754-1985, American National Standard for Binary Floating-Point
- Arithmetic.
- 5. ANSI/IEEE 854-1988, American National Standard for Radix-Independent
- Floating-Point Arithmetic.
- 6. IEC 60559:1989, Binary floating-point arithmetic for microprocessor systems,
- second edition (previously designated IEC 559:1989).
- 7. ISO 31-11:1992, Quantities and units -- Part 11: Mathematical signs and
- symbols for use in the physical sciences and technology.
- 8. ISO/IEC 646:1991, Information technology -- ISO 7-bit coded character set for
- information interchange.
- 9. ISO/IEC 2382-1:1993, Information technology -- Vocabulary -- Part 1:
- Fundamental terms.
- 10. ISO 4217:1995, Codes for the representation of currencies and funds.
- 11. ISO 8601:1988, Data elements and interchange formats -- Information
- interchange -- Representation of dates and times.
- 12. ISO/IEC 9899:1990, Programming languages -- C.
- 13. ISO/IEC 9899/COR1:1994, Technical Corrigendum 1.
- 14. ISO/IEC 9899/COR2:1996, Technical Corrigendum 2.
- 15. ISO/IEC 9899/AMD1:1995, Amendment 1 to ISO/IEC 9899:1990 C Integrity.
- 16. ISO/IEC 9945-2:1993, Information technology -- Portable Operating System
- Interface (POSIX) -- Part 2: Shell and Utilities.
- 17. ISO/IEC TR 10176:1998, Information technology -- Guidelines for the
- preparation of programming language standards.
- 18. ISO/IEC 10646-1:1993, Information technology -- Universal Multiple-Octet
- Coded Character Set (UCS) -- Part 1: Architecture and Basic Multilingual Plane.
-
-[<a name="p516" href="#p516">page 516</a>] (<a href="#Contents">Contents</a>)
-
- 19. ISO/IEC 10646-1/COR1:1996, Technical Corrigendum 1 to
- ISO/IEC 10646-1:1993.
- 20. ISO/IEC 10646-1/COR2:1998, Technical Corrigendum 2 to
- ISO/IEC 10646-1:1993.
- 21. ISO/IEC 10646-1/AMD1:1996, Amendment 1 to ISO/IEC 10646-1:1993
- Transformation Format for 16 planes of group 00 (UTF-16).
- 22. ISO/IEC 10646-1/AMD2:1996, Amendment 2 to ISO/IEC 10646-1:1993 UCS
- Transformation Format 8 (UTF-8).
- 23. ISO/IEC 10646-1/AMD3:1996, Amendment 3 to ISO/IEC 10646-1:1993.
- 24. ISO/IEC 10646-1/AMD4:1996, Amendment 4 to ISO/IEC 10646-1:1993.
- 25. ISO/IEC 10646-1/AMD5:1998, Amendment 5 to ISO/IEC 10646-1:1993 Hangul
- syllables.
- 26. ISO/IEC 10646-1/AMD6:1997, Amendment 6 to ISO/IEC 10646-1:1993 Tibetan.
- 27. ISO/IEC 10646-1/AMD7:1997, Amendment 7 to ISO/IEC 10646-1:1993 33
- additional characters.
- 28. ISO/IEC 10646-1/AMD8:1997, Amendment 8 to ISO/IEC 10646-1:1993.
- 29. ISO/IEC 10646-1/AMD9:1997, Amendment 9 to ISO/IEC 10646-1:1993
- Identifiers for characters.
- 30. ISO/IEC 10646-1/AMD10:1998, Amendment 10 to ISO/IEC 10646-1:1993
- Ethiopic.
- 31. ISO/IEC 10646-1/AMD11:1998, Amendment 11 to ISO/IEC 10646-1:1993
- Unified Canadian Aboriginal Syllabics.
- 32. ISO/IEC 10646-1/AMD12:1998, Amendment 12 to ISO/IEC 10646-1:1993
- Cherokee.
- 33. ISO/IEC 10967-1:1994, Information technology -- Language independent
- arithmetic -- Part 1: Integer and floating point arithmetic.
-
-
-
-
-[<a name="p517" href="#p517">page 517</a>] (<a href="#Contents">Contents</a>)
-
-
-
-[<a name="p518" href="#p518">page 518</a>] (<a href="#Contents">Contents</a>)
-
-
-<a name="Index" href="#Index"><b>Index</b></a>
-??? x ???, <a href="#3.18">3.18</a> , (comma punctuator), <a href="#6.5.2">6.5.2</a>, <a href="#6.7">6.7</a>, <a href="#6.7.2.1">6.7.2.1</a>, <a href="#6.7.2.2">6.7.2.2</a>,
- <a href="#6.7.2.3">6.7.2.3</a>, <a href="#6.7.8">6.7.8</a>
-??? x ???, <a href="#3.19">3.19</a> - (subtraction operator), <a href="#6.5.6">6.5.6</a>, <a href="#F.3">F.3</a>, <a href="#G.5.2">G.5.2</a>
-! (logical negation operator), <a href="#6.5.3.3">6.5.3.3</a> - (unary minus operator), <a href="#6.5.3.3">6.5.3.3</a>, <a href="#F.3">F.3</a>
-!= (inequality operator), <a href="#6.5.9">6.5.9</a> -- (postfix decrement operator), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.4">6.5.2.4</a>
-# operator, <a href="#6.10.3.2">6.10.3.2</a> -- (prefix decrement operator), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.1">6.5.3.1</a>
-# preprocessing directive, <a href="#6.10.7">6.10.7</a> -= (subtraction assignment operator), <a href="#6.5.16.2">6.5.16.2</a>
-# punctuator, <a href="#6.10">6.10</a> -> (structure/union pointer operator), <a href="#6.5.2.3">6.5.2.3</a>
-## operator, <a href="#6.10.3.3">6.10.3.3</a> . (structure/union member operator), <a href="#6.3.2.1">6.3.2.1</a>,
-#define preprocessing directive, <a href="#6.10.3">6.10.3</a> <a href="#6.5.2.3">6.5.2.3</a>
-#elif preprocessing directive, <a href="#6.10.1">6.10.1</a> . punctuator, <a href="#6.7.8">6.7.8</a>
-#else preprocessing directive, <a href="#6.10.1">6.10.1</a> ... (ellipsis punctuator), <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.10.3">6.10.3</a>
-#endif preprocessing directive, <a href="#6.10.1">6.10.1</a> / (division operator), <a href="#6.5.5">6.5.5</a>, <a href="#F.3">F.3</a>, <a href="#G.5.1">G.5.1</a>
-#error preprocessing directive, <a href="#4">4</a>, <a href="#6.10.5">6.10.5</a> /* */ (comment delimiters), <a href="#6.4.9">6.4.9</a>
-#if preprocessing directive, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, // (comment delimiter), <a href="#6.4.9">6.4.9</a>
- <a href="#6.10.1">6.10.1</a>, <a href="#7.1.4">7.1.4</a> /= (division assignment operator), <a href="#6.5.16.2">6.5.16.2</a>
-#ifdef preprocessing directive, <a href="#6.10.1">6.10.1</a> : (colon punctuator), <a href="#6.7.2.1">6.7.2.1</a>
-#ifndef preprocessing directive, <a href="#6.10.1">6.10.1</a> :> (alternative spelling of ]), <a href="#6.4.6">6.4.6</a>
-#include preprocessing directive, <a href="#5.1.1.2">5.1.1.2</a>, ; (semicolon punctuator), <a href="#6.7">6.7</a>, <a href="#6.7.2.1">6.7.2.1</a>, <a href="#6.8.3">6.8.3</a>,
- <a href="#6.10.2">6.10.2</a> <a href="#6.8.5">6.8.5</a>, <a href="#6.8.6">6.8.6</a>
-#line preprocessing directive, <a href="#6.10.4">6.10.4</a> < (less-than operator), <a href="#6.5.8">6.5.8</a>
-#pragma preprocessing directive, <a href="#6.10.6">6.10.6</a> <% (alternative spelling of {), <a href="#6.4.6">6.4.6</a>
-#undef preprocessing directive, <a href="#6.10.3.5">6.10.3.5</a>, <a href="#7.1.3">7.1.3</a>, <: (alternative spelling of [), <a href="#6.4.6">6.4.6</a>
- <a href="#7.1.4">7.1.4</a> << (left-shift operator), <a href="#6.5.7">6.5.7</a>
-% (remainder operator), <a href="#6.5.5">6.5.5</a> <<= (left-shift assignment operator), <a href="#6.5.16.2">6.5.16.2</a>
-%: (alternative spelling of #), <a href="#6.4.6">6.4.6</a> <= (less-than-or-equal-to operator), <a href="#6.5.8">6.5.8</a>
-%:%: (alternative spelling of ##), <a href="#6.4.6">6.4.6</a> <a href="#7.2"><assert.h></a> header, <a href="#7.2">7.2</a>, <a href="#B.1">B.1</a>
-%= (remainder assignment operator), <a href="#6.5.16.2">6.5.16.2</a> <a href="#7.3"><complex.h></a> header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.3">7.3</a>, <a href="#7.22">7.22</a>,
-%> (alternative spelling of }), <a href="#6.4.6">6.4.6</a> <a href="#7.26.1">7.26.1</a>, <a href="#G.6">G.6</a>, <a href="#J.5.17">J.5.17</a>
-& (address operator), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> <a href="#7.4"><ctype.h></a> header, <a href="#7.4">7.4</a>, <a href="#7.26.2">7.26.2</a>
-& (bitwise AND operator), <a href="#6.5.10">6.5.10</a> <a href="#7.5"><errno.h></a> header, <a href="#7.5">7.5</a>, <a href="#7.26.3">7.26.3</a>
-&& (logical AND operator), <a href="#6.5.13">6.5.13</a> <a href="#7.6"><fenv.h></a> header, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F">F</a>,
-&= (bitwise AND assignment operator), <a href="#6.5.16.2">6.5.16.2</a> <a href="#H">H</a>
-' ' (space character), <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>, <a href="#7.4.1.3">7.4.1.3</a>, <a href="#7.7"><float.h></a> header, <a href="#4">4</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.7">7.7</a>, <a href="#7.20.1.3">7.20.1.3</a>,
- <a href="#7.4.1.10">7.4.1.10</a>, <a href="#7.25.2.1.3">7.25.2.1.3</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>
-( ) (cast operator), <a href="#6.5.4">6.5.4</a> <a href="#7.8"><inttypes.h></a> header, <a href="#7.8">7.8</a>, <a href="#7.26.4">7.26.4</a>
-( ) (function-call operator), <a href="#6.5.2.2">6.5.2.2</a> <a href="#7.9"><iso646.h></a> header, <a href="#4">4</a>, <a href="#7.9">7.9</a>
-( ) (parentheses punctuator), <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.8.4">6.8.4</a>, <a href="#6.8.5">6.8.5</a> <a href="#7.10"><limits.h></a> header, <a href="#4">4</a>, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#6.2.5">6.2.5</a>, <a href="#7.10">7.10</a>
-( ){ } (compound-literal operator), <a href="#6.5.2.5">6.5.2.5</a> <a href="#7.11"><locale.h></a> header, <a href="#7.11">7.11</a>, <a href="#7.26.5">7.26.5</a>
-* (asterisk punctuator), <a href="#6.7.5.1">6.7.5.1</a>, <a href="#6.7.5.2">6.7.5.2</a> <a href="#7.12"><math.h></a> header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.5">6.5</a>, <a href="#7.12">7.12</a>, <a href="#7.22">7.22</a>, <a href="#F">F</a>,
-* (indirection operator), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> <a href="#F.9">F.9</a>, <a href="#J.5.17">J.5.17</a>
-* (multiplication operator), <a href="#6.5.5">6.5.5</a>, <a href="#F.3">F.3</a>, <a href="#G.5.1">G.5.1</a> <a href="#7.13"><setjmp.h></a> header, <a href="#7.13">7.13</a>
-*= (multiplication assignment operator), <a href="#6.5.16.2">6.5.16.2</a> <a href="#7.14"><signal.h></a> header, <a href="#7.14">7.14</a>, <a href="#7.26.6">7.26.6</a>
-+ (addition operator), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a>, <a href="#6.5.6">6.5.6</a>, <a href="#F.3">F.3</a>, <a href="#7.15"><stdarg.h></a> header, <a href="#4">4</a>, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#7.15">7.15</a>
- <a href="#G.5.2">G.5.2</a> <a href="#7.16"><stdbool.h></a> header, <a href="#4">4</a>, <a href="#7.16">7.16</a>, <a href="#7.26.7">7.26.7</a>, <a href="#H">H</a>
-+ (unary plus operator), <a href="#6.5.3.3">6.5.3.3</a> <a href="#7.17"><stddef.h></a> header, <a href="#4">4</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.3.2.3">6.3.2.3</a>, <a href="#6.4.4.4">6.4.4.4</a>,
-++ (postfix increment operator), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.4">6.5.2.4</a> <a href="#6.4.5">6.4.5</a>, <a href="#6.5.3.4">6.5.3.4</a>, <a href="#6.5.6">6.5.6</a>, <a href="#7.17">7.17</a>
-++ (prefix increment operator), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.1">6.5.3.1</a> <a href="#7.18"><stdint.h></a> header, <a href="#4">4</a>, <a href="#5.2.4.2">5.2.4.2</a>, <a href="#6.10.1">6.10.1</a>, <a href="#7.8">7.8</a>,
-+= (addition assignment operator), <a href="#6.5.16.2">6.5.16.2</a> <a href="#7.18">7.18</a>, <a href="#7.26.8">7.26.8</a>
-, (comma operator), <a href="#6.5.17">6.5.17</a>
-[<a name="p519" href="#p519">page 519</a>] (<a href="#Contents">Contents</a>)
-
-<a href="#7.19"><stdio.h></a> header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19">7.19</a>, <a href="#7.26.9">7.26.9</a>, <a href="#F">F</a> __cplusplus macro, <a href="#6.10.8">6.10.8</a>
-<a href="#7.20"><stdlib.h></a> header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.20">7.20</a>, <a href="#7.26.10">7.26.10</a>, <a href="#F">F</a> __DATE__ macro, <a href="#6.10.8">6.10.8</a>
-<a href="#7.21"><string.h></a> header, <a href="#7.21">7.21</a>, <a href="#7.26.11">7.26.11</a> __FILE__ macro, <a href="#6.10.8">6.10.8</a>, <a href="#7.2.1.1">7.2.1.1</a>
-<a href="#7.22"><tgmath.h></a> header, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> __func__ identifier, <a href="#6.4.2.2">6.4.2.2</a>, <a href="#7.2.1.1">7.2.1.1</a>
-<a href="#7.23"><time.h></a> header, <a href="#7.23">7.23</a> __LINE__ macro, <a href="#6.10.8">6.10.8</a>, <a href="#7.2.1.1">7.2.1.1</a>
-<a href="#7.24"><wchar.h></a> header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.24">7.24</a>, __STDC_, <a href="#6.11.9">6.11.9</a>
- <a href="#7.26.12">7.26.12</a>, <a href="#F">F</a> __STDC__ macro, <a href="#6.10.8">6.10.8</a>
-<a href="#7.25"><wctype.h></a> header, <a href="#7.25">7.25</a>, <a href="#7.26.13">7.26.13</a> __STDC_CONSTANT_MACROS macro, <a href="#7.18.4">7.18.4</a>
-= (equal-sign punctuator), <a href="#6.7">6.7</a>, <a href="#6.7.2.2">6.7.2.2</a>, <a href="#6.7.8">6.7.8</a> __STDC_FORMAT_MACROS macro, <a href="#7.8.1">7.8.1</a>
-= (simple assignment operator), <a href="#6.5.16.1">6.5.16.1</a> __STDC_HOSTED__ macro, <a href="#6.10.8">6.10.8</a>
-== (equality operator), <a href="#6.5.9">6.5.9</a> __STDC_IEC_559__ macro, <a href="#6.10.8">6.10.8</a>, <a href="#F.1">F.1</a>
-> (greater-than operator), <a href="#6.5.8">6.5.8</a> __STDC_IEC_559_COMPLEX__ macro,
->= (greater-than-or-equal-to operator), <a href="#6.5.8">6.5.8</a> <a href="#6.10.8">6.10.8</a>, <a href="#G.1">G.1</a>
->> (right-shift operator), <a href="#6.5.7">6.5.7</a> __STDC_ISO_10646__ macro, <a href="#6.10.8">6.10.8</a>
->>= (right-shift assignment operator), <a href="#6.5.16.2">6.5.16.2</a> __STDC_LIMIT_MACROS macro, <a href="#7.18.2">7.18.2</a>,
-? : (conditional operator), <a href="#6.5.15">6.5.15</a> <a href="#7.18.3">7.18.3</a>
-?? (trigraph sequences), <a href="#5.2.1.1">5.2.1.1</a> __STDC_MB_MIGHT_NEQ_WC__ macro,
-[ ] (array subscript operator), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> <a href="#6.10.8">6.10.8</a>, <a href="#7.17">7.17</a>
-[ ] (brackets punctuator), <a href="#6.7.5.2">6.7.5.2</a>, <a href="#6.7.8">6.7.8</a> __STDC_VERSION__ macro, <a href="#6.10.8">6.10.8</a>
-\ (backslash character), <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4.4.4">6.4.4.4</a> __TIME__ macro, <a href="#6.10.8">6.10.8</a>
-\ (escape character), <a href="#6.4.4.4">6.4.4.4</a> __VA_ARGS__ identifier, <a href="#6.10.3">6.10.3</a>, <a href="#6.10.3.1">6.10.3.1</a>
-\" (double-quote escape sequence), <a href="#6.4.4.4">6.4.4.4</a>, _Bool type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.2">6.3.1.2</a>, <a href="#6.7.2">6.7.2</a>
- <a href="#6.4.5">6.4.5</a>, <a href="#6.10.9">6.10.9</a> _Bool type conversions, <a href="#6.3.1.2">6.3.1.2</a>
-\\ (backslash escape sequence), <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.10.9">6.10.9</a> _Complex types, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2">6.7.2</a>, <a href="#7.3.1">7.3.1</a>, <a href="#G">G</a>
-\' (single-quote escape sequence), <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.4.5">6.4.5</a> _Complex_I macro, <a href="#7.3.1">7.3.1</a>
-\0 (null character), <a href="#5.2.1">5.2.1</a>, <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.4.5">6.4.5</a> _Exit function, <a href="#7.20.4.4">7.20.4.4</a>
- padding of binary stream, <a href="#7.19.2">7.19.2</a> _Imaginary keyword, <a href="#G.2">G.2</a>
-\? (question-mark escape sequence), <a href="#6.4.4.4">6.4.4.4</a> _Imaginary types, <a href="#7.3.1">7.3.1</a>, <a href="#G">G</a>
-\a (alert escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a> _Imaginary_I macro, <a href="#7.3.1">7.3.1</a>, <a href="#G.6">G.6</a>
-\b (backspace escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a> _IOFBF macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.5">7.19.5.5</a>, <a href="#7.19.5.6">7.19.5.6</a>
-\f (form-feed escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>, _IOLBF macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.6">7.19.5.6</a>
- <a href="#7.4.1.10">7.4.1.10</a> _IONBF macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.5">7.19.5.5</a>, <a href="#7.19.5.6">7.19.5.6</a>
-\n (new-line escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>, _Pragma operator, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.10.9">6.10.9</a>
- <a href="#7.4.1.10">7.4.1.10</a> { } (braces punctuator), <a href="#6.7.2.2">6.7.2.2</a>, <a href="#6.7.2.3">6.7.2.3</a>, <a href="#6.7.8">6.7.8</a>,
-\octal digits (octal-character escape sequence), <a href="#6.8.2">6.8.2</a>
- <a href="#6.4.4.4">6.4.4.4</a> { } (compound-literal operator), <a href="#6.5.2.5">6.5.2.5</a>
-\r (carriage-return escape sequence), <a href="#5.2.2">5.2.2</a>, | (bitwise inclusive OR operator), <a href="#6.5.12">6.5.12</a>
- <a href="#6.4.4.4">6.4.4.4</a>, <a href="#7.4.1.10">7.4.1.10</a> |= (bitwise inclusive OR assignment operator),
-\t (horizontal-tab escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.5.16.2">6.5.16.2</a>
- <a href="#6.4.4.4">6.4.4.4</a>, <a href="#7.4.1.3">7.4.1.3</a>, <a href="#7.4.1.10">7.4.1.10</a>, <a href="#7.25.2.1.3">7.25.2.1.3</a> || (logical OR operator), <a href="#6.5.14">6.5.14</a>
-\U (universal character names), <a href="#6.4.3">6.4.3</a> ~ (bitwise complement operator), <a href="#6.5.3.3">6.5.3.3</a>
-\u (universal character names), <a href="#6.4.3">6.4.3</a>
-\v (vertical-tab escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>, abort function, <a href="#7.2.1.1">7.2.1.1</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.19.3">7.19.3</a>,
- <a href="#7.4.1.10">7.4.1.10</a> <a href="#7.20.4.1">7.20.4.1</a>
-\x hexadecimal digits (hexadecimal-character abs function, <a href="#7.20.6.1">7.20.6.1</a>
- escape sequence), <a href="#6.4.4.4">6.4.4.4</a> absolute-value functions
-^ (bitwise exclusive OR operator), <a href="#6.5.11">6.5.11</a> complex, <a href="#7.3.8">7.3.8</a>, <a href="#G.6.4">G.6.4</a>
-^= (bitwise exclusive OR assignment operator), integer, <a href="#7.8.2.1">7.8.2.1</a>, <a href="#7.20.6.1">7.20.6.1</a>
- <a href="#6.5.16.2">6.5.16.2</a> real, <a href="#7.12.7">7.12.7</a>, <a href="#F.9.4">F.9.4</a>
-__bool_true_false_are_defined abstract declarator, <a href="#6.7.6">6.7.6</a>
- macro, <a href="#7.16">7.16</a> abstract machine, <a href="#5.1.2.3">5.1.2.3</a>
-
-[<a name="p520" href="#p520">page 520</a>] (<a href="#Contents">Contents</a>)
-
-access, <a href="#3.1">3.1</a>, <a href="#6.7.3">6.7.3</a> array
-accuracy, see floating-point accuracy argument, <a href="#6.9.1">6.9.1</a>
-acos functions, <a href="#7.12.4.1">7.12.4.1</a>, <a href="#F.9.1.1">F.9.1.1</a> declarator, <a href="#6.7.5.2">6.7.5.2</a>
-acos type-generic macro, <a href="#7.22">7.22</a> initialization, <a href="#6.7.8">6.7.8</a>
-acosh functions, <a href="#7.12.5.1">7.12.5.1</a>, <a href="#F.9.2.1">F.9.2.1</a> multidimensional, <a href="#6.5.2.1">6.5.2.1</a>
-acosh type-generic macro, <a href="#7.22">7.22</a> parameter, <a href="#6.9.1">6.9.1</a>
-active position, <a href="#5.2.2">5.2.2</a> storage order, <a href="#6.5.2.1">6.5.2.1</a>
-actual argument, <a href="#3.3">3.3</a> subscript operator ([ ]), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a>
-actual parameter (deprecated), <a href="#3.3">3.3</a> subscripting, <a href="#6.5.2.1">6.5.2.1</a>
-addition assignment operator (+=), <a href="#6.5.16.2">6.5.16.2</a> type, <a href="#6.2.5">6.2.5</a>
-addition operator (+), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a>, <a href="#6.5.6">6.5.6</a>, <a href="#F.3">F.3</a>, type conversion, <a href="#6.3.2.1">6.3.2.1</a>
- <a href="#G.5.2">G.5.2</a> variable length, <a href="#6.7.5">6.7.5</a>, <a href="#6.7.5.2">6.7.5.2</a>
-additive expressions, <a href="#6.5.6">6.5.6</a>, <a href="#G.5.2">G.5.2</a> arrow operator (->), <a href="#6.5.2.3">6.5.2.3</a>
-address constant, <a href="#6.6">6.6</a> as-if rule, <a href="#5.1.2.3">5.1.2.3</a>
-address operator (&), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> ASCII code set, <a href="#5.2.1.1">5.2.1.1</a>
-aggregate initialization, <a href="#6.7.8">6.7.8</a> asctime function, <a href="#7.23.3.1">7.23.3.1</a>
-aggregate types, <a href="#6.2.5">6.2.5</a> asin functions, <a href="#7.12.4.2">7.12.4.2</a>, <a href="#F.9.1.2">F.9.1.2</a>
-alert escape sequence (\a), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a> asin type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
-aliasing, <a href="#6.5">6.5</a> asinh functions, <a href="#7.12.5.2">7.12.5.2</a>, <a href="#F.9.2.2">F.9.2.2</a>
-alignment, <a href="#3.2">3.2</a> asinh type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
- pointer, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.2.3">6.3.2.3</a> asm keyword, <a href="#J.5.10">J.5.10</a>
- structure/union member, <a href="#6.7.2.1">6.7.2.1</a> assert macro, <a href="#7.2.1.1">7.2.1.1</a>
-allocated storage, order and contiguity, <a href="#7.20.3">7.20.3</a> assert.h header, <a href="#7.2">7.2</a>, <a href="#B.1">B.1</a>
-and macro, <a href="#7.9">7.9</a> assignment
-AND operators compound, <a href="#6.5.16.2">6.5.16.2</a>
- bitwise (&), <a href="#6.5.10">6.5.10</a> conversion, <a href="#6.5.16.1">6.5.16.1</a>
- bitwise assignment (&=), <a href="#6.5.16.2">6.5.16.2</a> expression, <a href="#6.5.16">6.5.16</a>
- logical (&&), <a href="#6.5.13">6.5.13</a> operators, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.16">6.5.16</a>
-and_eq macro, <a href="#7.9">7.9</a> simple, <a href="#6.5.16.1">6.5.16.1</a>
-ANSI/IEEE 754, <a href="#F.1">F.1</a> associativity of operators, <a href="#6.5">6.5</a>
-ANSI/IEEE 854, <a href="#F.1">F.1</a> asterisk punctuator (*), <a href="#6.7.5.1">6.7.5.1</a>, <a href="#6.7.5.2">6.7.5.2</a>
-argc (main function parameter), <a href="#5.1.2.2.1">5.1.2.2.1</a> atan functions, <a href="#7.12.4.3">7.12.4.3</a>, <a href="#F.9.1.3">F.9.1.3</a>
-argument, <a href="#3.3">3.3</a> atan type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
- array, <a href="#6.9.1">6.9.1</a> atan2 functions, <a href="#7.12.4.4">7.12.4.4</a>, <a href="#F.9.1.4">F.9.1.4</a>
- default promotions, <a href="#6.5.2.2">6.5.2.2</a> atan2 type-generic macro, <a href="#7.22">7.22</a>
- function, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.9.1">6.9.1</a> atanh functions, <a href="#7.12.5.3">7.12.5.3</a>, <a href="#F.9.2.3">F.9.2.3</a>
- macro, substitution, <a href="#6.10.3.1">6.10.3.1</a> atanh type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
-argument, complex, <a href="#7.3.9.1">7.3.9.1</a> atexit function, <a href="#7.20.4.2">7.20.4.2</a>, <a href="#7.20.4.3">7.20.4.3</a>, <a href="#7.20.4.4">7.20.4.4</a>,
-argv (main function parameter), <a href="#5.1.2.2.1">5.1.2.2.1</a> <a href="#J.5.13">J.5.13</a>
-arithmetic constant expression, <a href="#6.6">6.6</a> atof function, <a href="#7.20.1">7.20.1</a>, <a href="#7.20.1.1">7.20.1.1</a>
-arithmetic conversions, usual, see usual arithmetic atoi function, <a href="#7.20.1">7.20.1</a>, <a href="#7.20.1.2">7.20.1.2</a>
- conversions atol function, <a href="#7.20.1">7.20.1</a>, <a href="#7.20.1.2">7.20.1.2</a>
-arithmetic operators atoll function, <a href="#7.20.1">7.20.1</a>, <a href="#7.20.1.2">7.20.1.2</a>
- additive, <a href="#6.5.6">6.5.6</a>, <a href="#G.5.2">G.5.2</a> auto storage-class specifier, <a href="#6.7.1">6.7.1</a>, <a href="#6.9">6.9</a>
- bitwise, <a href="#6.5.10">6.5.10</a>, <a href="#6.5.11">6.5.11</a>, <a href="#6.5.12">6.5.12</a> automatic storage duration, <a href="#5.2.3">5.2.3</a>, <a href="#6.2.4">6.2.4</a>
- increment and decrement, <a href="#6.5.2.4">6.5.2.4</a>, <a href="#6.5.3.1">6.5.3.1</a>
- multiplicative, <a href="#6.5.5">6.5.5</a>, <a href="#G.5.1">G.5.1</a> backslash character (\), <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4.4.4">6.4.4.4</a>
- shift, <a href="#6.5.7">6.5.7</a> backslash escape sequence (\\), <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.10.9">6.10.9</a>
- unary, <a href="#6.5.3.3">6.5.3.3</a> backspace escape sequence (\b), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>
-arithmetic types, <a href="#6.2.5">6.2.5</a> basic character set, <a href="#3.6">3.6</a>, <a href="#3.7.2">3.7.2</a>, <a href="#5.2.1">5.2.1</a>
-arithmetic, pointer, <a href="#6.5.6">6.5.6</a> basic types, <a href="#6.2.5">6.2.5</a>
-
-[<a name="p521" href="#p521">page 521</a>] (<a href="#Contents">Contents</a>)
-
-behavior, <a href="#3.4">3.4</a> call by value, <a href="#6.5.2.2">6.5.2.2</a>
-binary streams, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.19.9.2">7.19.9.2</a>, calloc function, <a href="#7.20.3">7.20.3</a>, <a href="#7.20.3.1">7.20.3.1</a>, <a href="#7.20.3.2">7.20.3.2</a>,
- <a href="#7.19.9.4">7.19.9.4</a> <a href="#7.20.3.4">7.20.3.4</a>
-bit, <a href="#3.5">3.5</a> carg functions, <a href="#7.3.9.1">7.3.9.1</a>, <a href="#G.6">G.6</a>
- high order, <a href="#3.6">3.6</a> carg type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
- low order, <a href="#3.6">3.6</a> carriage-return escape sequence (\r), <a href="#5.2.2">5.2.2</a>,
-bit-field, <a href="#6.7.2.1">6.7.2.1</a> <a href="#6.4.4.4">6.4.4.4</a>, <a href="#7.4.1.10">7.4.1.10</a>
-bitand macro, <a href="#7.9">7.9</a> case label, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.4.2">6.8.4.2</a>
-bitor macro, <a href="#7.9">7.9</a> case mapping functions
-bitwise operators, <a href="#6.5">6.5</a> character, <a href="#7.4.2">7.4.2</a>
- AND, <a href="#6.5.10">6.5.10</a> wide character, <a href="#7.25.3.1">7.25.3.1</a>
- AND assignment (&=), <a href="#6.5.16.2">6.5.16.2</a> extensible, <a href="#7.25.3.2">7.25.3.2</a>
- complement (~), <a href="#6.5.3.3">6.5.3.3</a> casin functions, <a href="#7.3.5.2">7.3.5.2</a>, <a href="#G.6">G.6</a>
- exclusive OR, <a href="#6.5.11">6.5.11</a> type-generic macro for, <a href="#7.22">7.22</a>
- exclusive OR assignment (^=), <a href="#6.5.16.2">6.5.16.2</a> casinh functions, <a href="#7.3.6.2">7.3.6.2</a>, <a href="#G.6.2.2">G.6.2.2</a>
- inclusive OR, <a href="#6.5.12">6.5.12</a> type-generic macro for, <a href="#7.22">7.22</a>
- inclusive OR assignment (|=), <a href="#6.5.16.2">6.5.16.2</a> cast expression, <a href="#6.5.4">6.5.4</a>
- shift, <a href="#6.5.7">6.5.7</a> cast operator (( )), <a href="#6.5.4">6.5.4</a>
-blank character, <a href="#7.4.1.3">7.4.1.3</a> catan functions, <a href="#7.3.5.3">7.3.5.3</a>, <a href="#G.6">G.6</a>
-block, <a href="#6.8">6.8</a>, <a href="#6.8.2">6.8.2</a>, <a href="#6.8.4">6.8.4</a>, <a href="#6.8.5">6.8.5</a> type-generic macro for, <a href="#7.22">7.22</a>
-block scope, <a href="#6.2.1">6.2.1</a> catanh functions, <a href="#7.3.6.3">7.3.6.3</a>, <a href="#G.6.2.3">G.6.2.3</a>
-block structure, <a href="#6.2.1">6.2.1</a> type-generic macro for, <a href="#7.22">7.22</a>
-bold type convention, <a href="#6.1">6.1</a> cbrt functions, <a href="#7.12.7.1">7.12.7.1</a>, <a href="#F.9.4.1">F.9.4.1</a>
-bool macro, <a href="#7.16">7.16</a> cbrt type-generic macro, <a href="#7.22">7.22</a>
-boolean type, <a href="#6.3.1.2">6.3.1.2</a> ccos functions, <a href="#7.3.5.4">7.3.5.4</a>, <a href="#G.6">G.6</a>
-boolean type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.2">6.3.1.2</a> type-generic macro for, <a href="#7.22">7.22</a>
-braces punctuator ({ }), <a href="#6.7.2.2">6.7.2.2</a>, <a href="#6.7.2.3">6.7.2.3</a>, <a href="#6.7.8">6.7.8</a>, ccosh functions, <a href="#7.3.6.4">7.3.6.4</a>, <a href="#G.6.2.4">G.6.2.4</a>
- <a href="#6.8.2">6.8.2</a> type-generic macro for, <a href="#7.22">7.22</a>
-brackets operator ([ ]), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> ceil functions, <a href="#7.12.9.1">7.12.9.1</a>, <a href="#F.9.6.1">F.9.6.1</a>
-brackets punctuator ([ ]), <a href="#6.7.5.2">6.7.5.2</a>, <a href="#6.7.8">6.7.8</a> ceil type-generic macro, <a href="#7.22">7.22</a>
-branch cuts, <a href="#7.3.3">7.3.3</a> cerf function, <a href="#7.26.1">7.26.1</a>
-break statement, <a href="#6.8.6.3">6.8.6.3</a> cerfc function, <a href="#7.26.1">7.26.1</a>
-broken-down time, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.3">7.23.2.3</a>, <a href="#7.23.3">7.23.3</a>, cexp functions, <a href="#7.3.7.1">7.3.7.1</a>, <a href="#G.6.3.1">G.6.3.1</a>
- <a href="#7.23.3.1">7.23.3.1</a>, <a href="#7.23.3.3">7.23.3.3</a>, <a href="#7.23.3.4">7.23.3.4</a>, <a href="#7.23.3.5">7.23.3.5</a> type-generic macro for, <a href="#7.22">7.22</a>
-bsearch function, <a href="#7.20.5">7.20.5</a>, <a href="#7.20.5.1">7.20.5.1</a> cexp2 function, <a href="#7.26.1">7.26.1</a>
-btowc function, <a href="#7.24.6.1.1">7.24.6.1.1</a> cexpm1 function, <a href="#7.26.1">7.26.1</a>
-BUFSIZ macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.5.5">7.19.5.5</a> char type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.7.2">6.7.2</a>
-byte, <a href="#3.6">3.6</a>, <a href="#6.5.3.4">6.5.3.4</a> char type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.3.1.4">6.3.1.4</a>,
-byte input/output functions, <a href="#7.19.1">7.19.1</a> <a href="#6.3.1.8">6.3.1.8</a>
-byte-oriented stream, <a href="#7.19.2">7.19.2</a> CHAR_BIT macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
- CHAR_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
-C program, <a href="#5.1.1.1">5.1.1.1</a> CHAR_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
-C++, <a href="#7.8.1">7.8.1</a>, <a href="#7.18.2">7.18.2</a>, <a href="#7.18.3">7.18.3</a>, <a href="#7.18.4">7.18.4</a> character, <a href="#3.7">3.7</a>, <a href="#3.7.1">3.7.1</a>
-cabs functions, <a href="#7.3.8.1">7.3.8.1</a>, <a href="#G.6">G.6</a> character array initialization, <a href="#6.7.8">6.7.8</a>
- type-generic macro for, <a href="#7.22">7.22</a> character case mapping functions, <a href="#7.4.2">7.4.2</a>
-cacos functions, <a href="#7.3.5.1">7.3.5.1</a>, <a href="#G.6.1.1">G.6.1.1</a> wide character, <a href="#7.25.3.1">7.25.3.1</a>
- type-generic macro for, <a href="#7.22">7.22</a> extensible, <a href="#7.25.3.2">7.25.3.2</a>
-cacosh functions, <a href="#7.3.6.1">7.3.6.1</a>, <a href="#G.6.2.1">G.6.2.1</a> character classification functions, <a href="#7.4.1">7.4.1</a>
- type-generic macro for, <a href="#7.22">7.22</a> wide character, <a href="#7.25.2.1">7.25.2.1</a>
-calendar time, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.2">7.23.2.2</a>, <a href="#7.23.2.3">7.23.2.3</a>, <a href="#7.23.2.4">7.23.2.4</a>, extensible, <a href="#7.25.2.2">7.25.2.2</a>
- <a href="#7.23.3.2">7.23.3.2</a>, <a href="#7.23.3.3">7.23.3.3</a>, <a href="#7.23.3.4">7.23.3.4</a> character constant, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4.4.4">6.4.4.4</a>
-
-[<a name="p522" href="#p522">page 522</a>] (<a href="#Contents">Contents</a>)
-
-character display semantics, <a href="#5.2.2">5.2.2</a> complex.h header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.3">7.3</a>, <a href="#7.22">7.22</a>, <a href="#7.26.1">7.26.1</a>,
-character handling header, <a href="#7.4">7.4</a>, <a href="#7.11.1.1">7.11.1.1</a> <a href="#G.6">G.6</a>, <a href="#J.5.17">J.5.17</a>
-character input/output functions, <a href="#7.19.7">7.19.7</a> compliance, see conformance
- wide character, <a href="#7.24.3">7.24.3</a> components of time, <a href="#7.23.1">7.23.1</a>
-character sets, <a href="#5.2.1">5.2.1</a> composite type, <a href="#6.2.7">6.2.7</a>
-character string literal, see string literal compound assignment, <a href="#6.5.16.2">6.5.16.2</a>
-character type conversion, <a href="#6.3.1.1">6.3.1.1</a> compound literals, <a href="#6.5.2.5">6.5.2.5</a>
-character types, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.8">6.7.8</a> compound statement, <a href="#6.8.2">6.8.2</a>
-cimag functions, <a href="#7.3.9.2">7.3.9.2</a>, <a href="#7.3.9.4">7.3.9.4</a>, <a href="#G.6">G.6</a> compound-literal operator (( ){ }), <a href="#6.5.2.5">6.5.2.5</a>
-cimag type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> concatenation functions
-cis function, <a href="#G.6">G.6</a> string, <a href="#7.21.3">7.21.3</a>
-classification functions wide string, <a href="#7.24.4.3">7.24.4.3</a>
- character, <a href="#7.4.1">7.4.1</a> concatenation, preprocessing, see preprocessing
- floating-point, <a href="#7.12.3">7.12.3</a> concatenation
- wide character, <a href="#7.25.2.1">7.25.2.1</a> conceptual models, <a href="#5.1">5.1</a>
- extensible, <a href="#7.25.2.2">7.25.2.2</a> conditional inclusion, <a href="#6.10.1">6.10.1</a>
-clearerr function, <a href="#7.19.10.1">7.19.10.1</a> conditional operator (? :), <a href="#6.5.15">6.5.15</a>
-clgamma function, <a href="#7.26.1">7.26.1</a> conformance, <a href="#4">4</a>
-clock function, <a href="#7.23.2.1">7.23.2.1</a> conj functions, <a href="#7.3.9.3">7.3.9.3</a>, <a href="#G.6">G.6</a>
-clock_t type, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.1">7.23.2.1</a> conj type-generic macro, <a href="#7.22">7.22</a>
-CLOCKS_PER_SEC macro, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.1">7.23.2.1</a> const type qualifier, <a href="#6.7.3">6.7.3</a>
-clog functions, <a href="#7.3.7.2">7.3.7.2</a>, <a href="#G.6.3.2">G.6.3.2</a> const-qualified type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.7.3">6.7.3</a>
- type-generic macro for, <a href="#7.22">7.22</a> constant expression, <a href="#6.6">6.6</a>, <a href="#F.7.4">F.7.4</a>
-clog10 function, <a href="#7.26.1">7.26.1</a> constants, <a href="#6.4.4">6.4.4</a>
-clog1p function, <a href="#7.26.1">7.26.1</a> as primary expression, <a href="#6.5.1">6.5.1</a>
-clog2 function, <a href="#7.26.1">7.26.1</a> character, <a href="#6.4.4.4">6.4.4.4</a>
-collating sequences, <a href="#5.2.1">5.2.1</a> enumeration, <a href="#6.2.1">6.2.1</a>, <a href="#6.4.4.3">6.4.4.3</a>
-colon punctuator (:), <a href="#6.7.2.1">6.7.2.1</a> floating, <a href="#6.4.4.2">6.4.4.2</a>
-comma operator (,), <a href="#6.5.17">6.5.17</a> hexadecimal, <a href="#6.4.4.1">6.4.4.1</a>
-comma punctuator (,), <a href="#6.5.2">6.5.2</a>, <a href="#6.7">6.7</a>, <a href="#6.7.2.1">6.7.2.1</a>, <a href="#6.7.2.2">6.7.2.2</a>, integer, <a href="#6.4.4.1">6.4.4.1</a>
- <a href="#6.7.2.3">6.7.2.3</a>, <a href="#6.7.8">6.7.8</a> octal, <a href="#6.4.4.1">6.4.4.1</a>
-command processor, <a href="#7.20.4.6">7.20.4.6</a> constraint, <a href="#3.8">3.8</a>, <a href="#4">4</a>
-comment delimiters (/* */ and //), <a href="#6.4.9">6.4.9</a> content of structure/union/enumeration, <a href="#6.7.2.3">6.7.2.3</a>
-comments, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.4">6.4</a>, <a href="#6.4.9">6.4.9</a> contiguity of allocated storage, <a href="#7.20.3">7.20.3</a>
-common extensions, <a href="#J.5">J.5</a> continue statement, <a href="#6.8.6.2">6.8.6.2</a>
-common initial sequence, <a href="#6.5.2.3">6.5.2.3</a> contracted expression, <a href="#6.5">6.5</a>, <a href="#7.12.2">7.12.2</a>, <a href="#F.6">F.6</a>
-common real type, <a href="#6.3.1.8">6.3.1.8</a> control character, <a href="#5.2.1">5.2.1</a>, <a href="#7.4">7.4</a>
-common warnings, <a href="#I">I</a> control wide character, <a href="#7.25.2">7.25.2</a>
-comparison functions, <a href="#7.20.5">7.20.5</a>, <a href="#7.20.5.1">7.20.5.1</a>, <a href="#7.20.5.2">7.20.5.2</a> conversion, <a href="#6.3">6.3</a>
- string, <a href="#7.21.4">7.21.4</a> arithmetic operands, <a href="#6.3.1">6.3.1</a>
- wide string, <a href="#7.24.4.4">7.24.4.4</a> array argument, <a href="#6.9.1">6.9.1</a> *
-comparison macros, <a href="#7.12.14">7.12.14</a> array parameter, <a href="#6.9.1">6.9.1</a>
-comparison, pointer, <a href="#6.5.8">6.5.8</a> arrays, <a href="#6.3.2.1">6.3.2.1</a>
-compatible type, <a href="#6.2.7">6.2.7</a>, <a href="#6.7.2">6.7.2</a>, <a href="#6.7.3">6.7.3</a>, <a href="#6.7.5">6.7.5</a> boolean, <a href="#6.3.1.2">6.3.1.2</a>
-compl macro, <a href="#7.9">7.9</a> boolean, characters, and integers, <a href="#6.3.1.1">6.3.1.1</a>
-complement operator (~), <a href="#6.5.3.3">6.5.3.3</a> by assignment, <a href="#6.5.16.1">6.5.16.1</a>
-complex macro, <a href="#7.3.1">7.3.1</a> by return statement, <a href="#6.8.6.4">6.8.6.4</a>
-complex numbers, <a href="#6.2.5">6.2.5</a>, <a href="#G">G</a> complex types, <a href="#6.3.1.6">6.3.1.6</a>
-complex type conversion, <a href="#6.3.1.6">6.3.1.6</a>, <a href="#6.3.1.7">6.3.1.7</a> explicit, <a href="#6.3">6.3</a>
-complex type domain, <a href="#6.2.5">6.2.5</a> function, <a href="#6.3.2.1">6.3.2.1</a>
-complex types, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2">6.7.2</a>, <a href="#G">G</a> function argument, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.9.1">6.9.1</a>
-
-[<a name="p523" href="#p523">page 523</a>] (<a href="#Contents">Contents</a>)
-
- function designators, <a href="#6.3.2.1">6.3.2.1</a> type-generic macro for, <a href="#7.22">7.22</a>
- function parameter, <a href="#6.9.1">6.9.1</a> csinh functions, <a href="#7.3.6.5">7.3.6.5</a>, <a href="#G.6.2.5">G.6.2.5</a>
- imaginary, <a href="#G.4.1">G.4.1</a> type-generic macro for, <a href="#7.22">7.22</a>
- imaginary and complex, <a href="#G.4.3">G.4.3</a> csqrt functions, <a href="#7.3.8.3">7.3.8.3</a>, <a href="#G.6.4.2">G.6.4.2</a>
- implicit, <a href="#6.3">6.3</a> type-generic macro for, <a href="#7.22">7.22</a>
- lvalues, <a href="#6.3.2.1">6.3.2.1</a> ctan functions, <a href="#7.3.5.6">7.3.5.6</a>, <a href="#G.6">G.6</a>
- pointer, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.3.2.3">6.3.2.3</a> type-generic macro for, <a href="#7.22">7.22</a>
- real and complex, <a href="#6.3.1.7">6.3.1.7</a> ctanh functions, <a href="#7.3.6.6">7.3.6.6</a>, <a href="#G.6.2.6">G.6.2.6</a>
- real and imaginary, <a href="#G.4.2">G.4.2</a> type-generic macro for, <a href="#7.22">7.22</a>
- real floating and integer, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#F.3">F.3</a>, <a href="#F.4">F.4</a> ctgamma function, <a href="#7.26.1">7.26.1</a>
- real floating types, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#F.3">F.3</a> ctime function, <a href="#7.23.3.2">7.23.3.2</a>
- signed and unsigned integers, <a href="#6.3.1.3">6.3.1.3</a> ctype.h header, <a href="#7.4">7.4</a>, <a href="#7.26.2">7.26.2</a>
- usual arithmetic, see usual arithmetic current object, <a href="#6.7.8">6.7.8</a>
- conversions CX_LIMITED_RANGE pragma, <a href="#6.10.6">6.10.6</a>, <a href="#7.3.4">7.3.4</a>
- void type, <a href="#6.3.2.2">6.3.2.2</a>
-conversion functions data stream, see streams
- multibyte/wide character, <a href="#7.20.7">7.20.7</a> date and time header, <a href="#7.23">7.23</a>
- extended, <a href="#7.24.6">7.24.6</a> Daylight Saving Time, <a href="#7.23.1">7.23.1</a>
- restartable, <a href="#7.24.6.3">7.24.6.3</a> DBL_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- multibyte/wide string, <a href="#7.20.8">7.20.8</a> DBL_EPSILON macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- restartable, <a href="#7.24.6.4">7.24.6.4</a> DBL_MANT_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- numeric, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.20.1">7.20.1</a> DBL_MAX macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- wide string, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.24.4.1">7.24.4.1</a> DBL_MAX_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- single byte/wide character, <a href="#7.24.6.1">7.24.6.1</a> DBL_MAX_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- time, <a href="#7.23.3">7.23.3</a> DBL_MIN macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- wide character, <a href="#7.24.5">7.24.5</a> DBL_MIN_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
-conversion specifier, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, DBL_MIN_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- <a href="#7.24.2.2">7.24.2.2</a> decimal constant, <a href="#6.4.4.1">6.4.4.1</a>
-conversion state, <a href="#7.20.7">7.20.7</a>, <a href="#7.24.6">7.24.6</a>, <a href="#7.24.6.2.1">7.24.6.2.1</a>, decimal digit, <a href="#5.2.1">5.2.1</a>
- <a href="#7.24.6.3">7.24.6.3</a>, <a href="#7.24.6.3.2">7.24.6.3.2</a>, <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4">7.24.6.4</a>, decimal-point character, <a href="#7.1.1">7.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
- <a href="#7.24.6.4.1">7.24.6.4.1</a>, <a href="#7.24.6.4.2">7.24.6.4.2</a> DECIMAL_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19.6.1">7.19.6.1</a>,
-conversion state functions, <a href="#7.24.6.2">7.24.6.2</a> <a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#F.5">F.5</a>
-copying functions declaration specifiers, <a href="#6.7">6.7</a>
- string, <a href="#7.21.2">7.21.2</a> declarations, <a href="#6.7">6.7</a>
- wide string, <a href="#7.24.4.2">7.24.4.2</a> function, <a href="#6.7.5.3">6.7.5.3</a>
-copysign functions, <a href="#7.3.9.4">7.3.9.4</a>, <a href="#7.12.11.1">7.12.11.1</a>, <a href="#F.3">F.3</a>, pointer, <a href="#6.7.5.1">6.7.5.1</a>
- <a href="#F.9.8.1">F.9.8.1</a> structure/union, <a href="#6.7.2.1">6.7.2.1</a>
-copysign type-generic macro, <a href="#7.22">7.22</a> typedef, <a href="#6.7.7">6.7.7</a>
-correctly rounded result, <a href="#3.9">3.9</a> declarator, <a href="#6.7.5">6.7.5</a>
-corresponding real type, <a href="#6.2.5">6.2.5</a> abstract, <a href="#6.7.6">6.7.6</a>
-cos functions, <a href="#7.12.4.5">7.12.4.5</a>, <a href="#F.9.1.5">F.9.1.5</a> declarator type derivation, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.5">6.7.5</a>
-cos type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> decrement operators, see arithmetic operators,
-cosh functions, <a href="#7.12.5.4">7.12.5.4</a>, <a href="#F.9.2.4">F.9.2.4</a> increment and decrement
-cosh type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> default argument promotions, <a href="#6.5.2.2">6.5.2.2</a>
-cpow functions, <a href="#7.3.8.2">7.3.8.2</a>, <a href="#G.6.4.1">G.6.4.1</a> default initialization, <a href="#6.7.8">6.7.8</a>
- type-generic macro for, <a href="#7.22">7.22</a> default label, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.4.2">6.8.4.2</a>
-cproj functions, <a href="#7.3.9.4">7.3.9.4</a>, <a href="#G.6">G.6</a> define preprocessing directive, <a href="#6.10.3">6.10.3</a>
-cproj type-generic macro, <a href="#7.22">7.22</a> defined operator, <a href="#6.10.1">6.10.1</a>, <a href="#6.10.8">6.10.8</a>
-creal functions, <a href="#7.3.9.5">7.3.9.5</a>, <a href="#G.6">G.6</a> definition, <a href="#6.7">6.7</a>
-creal type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> function, <a href="#6.9.1">6.9.1</a>
-csin functions, <a href="#7.3.5.5">7.3.5.5</a>, <a href="#G.6">G.6</a> derived declarator types, <a href="#6.2.5">6.2.5</a>
-
-[<a name="p524" href="#p524">page 524</a>] (<a href="#Contents">Contents</a>)
-
-derived types, <a href="#6.2.5">6.2.5</a> end-of-file indicator, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.1">7.19.7.1</a>,
-designated initializer, <a href="#6.7.8">6.7.8</a> <a href="#7.19.7.5">7.19.7.5</a>, <a href="#7.19.7.6">7.19.7.6</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.19.9.2">7.19.9.2</a>,
-destringizing, <a href="#6.10.9">6.10.9</a> <a href="#7.19.9.3">7.19.9.3</a>, <a href="#7.19.10.1">7.19.10.1</a>, <a href="#7.19.10.2">7.19.10.2</a>, <a href="#7.24.3.1">7.24.3.1</a>,
-device input/output, <a href="#5.1.2.3">5.1.2.3</a> <a href="#7.24.3.10">7.24.3.10</a>
-diagnostic message, <a href="#3.10">3.10</a>, <a href="#5.1.1.3">5.1.1.3</a> end-of-file macro, see EOF macro
-diagnostics, <a href="#5.1.1.3">5.1.1.3</a> end-of-line indicator, <a href="#5.2.1">5.2.1</a>
-diagnostics header, <a href="#7.2">7.2</a> endif preprocessing directive, <a href="#6.10.1">6.10.1</a>
-difftime function, <a href="#7.23.2.2">7.23.2.2</a> enum type, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2">6.7.2</a>, <a href="#6.7.2.2">6.7.2.2</a>
-digit, <a href="#5.2.1">5.2.1</a>, <a href="#7.4">7.4</a> enumerated type, <a href="#6.2.5">6.2.5</a>
-digraphs, <a href="#6.4.6">6.4.6</a> enumeration, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2.2">6.7.2.2</a>
-direct input/output functions, <a href="#7.19.8">7.19.8</a> enumeration constant, <a href="#6.2.1">6.2.1</a>, <a href="#6.4.4.3">6.4.4.3</a>
-display device, <a href="#5.2.2">5.2.2</a> enumeration content, <a href="#6.7.2.3">6.7.2.3</a>
-div function, <a href="#7.20.6.2">7.20.6.2</a> enumeration members, <a href="#6.7.2.2">6.7.2.2</a>
-div_t type, <a href="#7.20">7.20</a> enumeration specifiers, <a href="#6.7.2.2">6.7.2.2</a>
-division assignment operator (/=), <a href="#6.5.16.2">6.5.16.2</a> enumeration tag, <a href="#6.2.3">6.2.3</a>, <a href="#6.7.2.3">6.7.2.3</a>
-division operator (/), <a href="#6.5.5">6.5.5</a>, <a href="#F.3">F.3</a>, <a href="#G.5.1">G.5.1</a> enumerator, <a href="#6.7.2.2">6.7.2.2</a>
-do statement, <a href="#6.8.5.2">6.8.5.2</a> environment, <a href="#5">5</a>
-documentation of implementation, <a href="#4">4</a> environment functions, <a href="#7.20.4">7.20.4</a>
-domain error, <a href="#7.12.1">7.12.1</a>, <a href="#7.12.4.1">7.12.4.1</a>, <a href="#7.12.4.2">7.12.4.2</a>, <a href="#7.12.4.4">7.12.4.4</a>, environment list, <a href="#7.20.4.5">7.20.4.5</a>
- <a href="#7.12.5.1">7.12.5.1</a>, <a href="#7.12.5.3">7.12.5.3</a>, <a href="#7.12.6.5">7.12.6.5</a>, <a href="#7.12.6.7">7.12.6.7</a>, environmental considerations, <a href="#5.2">5.2</a>
- <a href="#7.12.6.8">7.12.6.8</a>, <a href="#7.12.6.9">7.12.6.9</a>, <a href="#7.12.6.10">7.12.6.10</a>, <a href="#7.12.6.11">7.12.6.11</a>, environmental limits, <a href="#5.2.4">5.2.4</a>, <a href="#7.13.1.1">7.13.1.1</a>, <a href="#7.19.2">7.19.2</a>,
- <a href="#7.12.7.4">7.12.7.4</a>, <a href="#7.12.7.5">7.12.7.5</a>, <a href="#7.12.8.4">7.12.8.4</a>, <a href="#7.12.9.5">7.12.9.5</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.4.4">7.19.4.4</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.20.2.1">7.20.2.1</a>, <a href="#7.20.4.2">7.20.4.2</a>,
- <a href="#7.12.9.7">7.12.9.7</a>, <a href="#7.12.10.1">7.12.10.1</a>, <a href="#7.12.10.2">7.12.10.2</a>, <a href="#7.12.10.3">7.12.10.3</a> <a href="#7.24.2.1">7.24.2.1</a>
-dot operator (.), <a href="#6.5.2.3">6.5.2.3</a> EOF macro, <a href="#7.4">7.4</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.1">7.19.5.1</a>, <a href="#7.19.5.2">7.19.5.2</a>,
-double _Complex type, <a href="#6.2.5">6.2.5</a> <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.19.6.7">7.19.6.7</a>, <a href="#7.19.6.9">7.19.6.9</a>, <a href="#7.19.6.11">7.19.6.11</a>,
-double _Complex type conversion, <a href="#6.3.1.6">6.3.1.6</a>, <a href="#7.19.6.14">7.19.6.14</a>, <a href="#7.19.7.1">7.19.7.1</a>, <a href="#7.19.7.3">7.19.7.3</a>, <a href="#7.19.7.4">7.19.7.4</a>,
- <a href="#6.3.1.7">6.3.1.7</a>, <a href="#6.3.1.8">6.3.1.8</a> <a href="#7.19.7.5">7.19.7.5</a>, <a href="#7.19.7.6">7.19.7.6</a>, <a href="#7.19.7.9">7.19.7.9</a>, <a href="#7.19.7.10">7.19.7.10</a>,
-double _Imaginary type, <a href="#G.2">G.2</a> <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.24.1">7.24.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#7.24.2.4">7.24.2.4</a>,
-double type, <a href="#6.2.5">6.2.5</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#6.7.2">6.7.2</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.8">7.24.2.8</a>, <a href="#7.24.2.10">7.24.2.10</a>, <a href="#7.24.2.12">7.24.2.12</a>,
- <a href="#7.24.2.2">7.24.2.2</a>, <a href="#F.2">F.2</a> <a href="#7.24.3.4">7.24.3.4</a>, <a href="#7.24.6.1.1">7.24.6.1.1</a>, <a href="#7.24.6.1.2">7.24.6.1.2</a>
-double type conversion, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.7">6.3.1.7</a>, equal-sign punctuator (=), <a href="#6.7">6.7</a>, <a href="#6.7.2.2">6.7.2.2</a>, <a href="#6.7.8">6.7.8</a>
- <a href="#6.3.1.8">6.3.1.8</a> equal-to operator, see equality operator
-double-precision arithmetic, <a href="#5.1.2.3">5.1.2.3</a> equality expressions, <a href="#6.5.9">6.5.9</a>
-double-quote escape sequence (\"), <a href="#6.4.4.4">6.4.4.4</a>, equality operator (==), <a href="#6.5.9">6.5.9</a>
- <a href="#6.4.5">6.4.5</a>, <a href="#6.10.9">6.10.9</a> ERANGE macro, <a href="#7.5">7.5</a>, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.12.1">7.12.1</a>,
-double_t type, <a href="#7.12">7.12</a>, <a href="#J.5.6">J.5.6</a> <a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a>, see
- also range error
-EDOM macro, <a href="#7.5">7.5</a>, <a href="#7.12.1">7.12.1</a>, see also domain error erf functions, <a href="#7.12.8.1">7.12.8.1</a>, <a href="#F.9.5.1">F.9.5.1</a>
-effective type, <a href="#6.5">6.5</a> erf type-generic macro, <a href="#7.22">7.22</a>
-EILSEQ macro, <a href="#7.5">7.5</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.24.3.1">7.24.3.1</a>, <a href="#7.24.3.3">7.24.3.3</a>, erfc functions, <a href="#7.12.8.2">7.12.8.2</a>, <a href="#F.9.5.2">F.9.5.2</a>
- <a href="#7.24.6.3.2">7.24.6.3.2</a>, <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4.1">7.24.6.4.1</a>, <a href="#7.24.6.4.2">7.24.6.4.2</a>, erfc type-generic macro, <a href="#7.22">7.22</a>
- see also encoding error errno macro, <a href="#7.1.3">7.1.3</a>, <a href="#7.3.2">7.3.2</a>, <a href="#7.5">7.5</a>, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>,
-element type, <a href="#6.2.5">6.2.5</a> <a href="#7.12.1">7.12.1</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.9.3">7.19.9.3</a>, <a href="#7.19.10.4">7.19.10.4</a>,
-elif preprocessing directive, <a href="#6.10.1">6.10.1</a> <a href="#7.20.1">7.20.1</a>, <a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.21.6.2">7.21.6.2</a>, <a href="#7.24.3.1">7.24.3.1</a>,
-ellipsis punctuator (...), <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.10.3">6.10.3</a> <a href="#7.24.3.3">7.24.3.3</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a>, <a href="#7.24.6.3.2">7.24.6.3.2</a>,
-else preprocessing directive, <a href="#6.10.1">6.10.1</a> <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4.1">7.24.6.4.1</a>, <a href="#7.24.6.4.2">7.24.6.4.2</a>, <a href="#J.5.17">J.5.17</a>
-else statement, <a href="#6.8.4.1">6.8.4.1</a> errno.h header, <a href="#7.5">7.5</a>, <a href="#7.26.3">7.26.3</a>
-empty statement, <a href="#6.8.3">6.8.3</a> error
-encoding error, <a href="#7.19.3">7.19.3</a>, <a href="#7.24.3.1">7.24.3.1</a>, <a href="#7.24.3.3">7.24.3.3</a>, domain, see domain error
- <a href="#7.24.6.3.2">7.24.6.3.2</a>, <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4.1">7.24.6.4.1</a>, <a href="#7.24.6.4.2">7.24.6.4.2</a> encoding, see encoding error
-end-of-file, <a href="#7.24.1">7.24.1</a> range, see range error
-
-[<a name="p525" href="#p525">page 525</a>] (<a href="#Contents">Contents</a>)
-
-error conditions, <a href="#7.12.1">7.12.1</a> extended characters, <a href="#5.2.1">5.2.1</a>
-error functions, <a href="#7.12.8">7.12.8</a>, <a href="#F.9.5">F.9.5</a> extended integer types, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.4.4.1">6.4.4.1</a>,
-error indicator, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.1">7.19.7.1</a>, <a href="#7.18">7.18</a>
- <a href="#7.19.7.3">7.19.7.3</a>, <a href="#7.19.7.5">7.19.7.5</a>, <a href="#7.19.7.6">7.19.7.6</a>, <a href="#7.19.7.8">7.19.7.8</a>, extended multibyte/wide character conversion
- <a href="#7.19.7.9">7.19.7.9</a>, <a href="#7.19.9.2">7.19.9.2</a>, <a href="#7.19.10.1">7.19.10.1</a>, <a href="#7.19.10.3">7.19.10.3</a>, utilities, <a href="#7.24.6">7.24.6</a>
- <a href="#7.24.3.1">7.24.3.1</a>, <a href="#7.24.3.3">7.24.3.3</a> extensible wide character case mapping functions,
-error preprocessing directive, <a href="#4">4</a>, <a href="#6.10.5">6.10.5</a> <a href="#7.25.3.2">7.25.3.2</a>
-error-handling functions, <a href="#7.19.10">7.19.10</a>, <a href="#7.21.6.2">7.21.6.2</a> extensible wide character classification functions,
-escape character (\), <a href="#6.4.4.4">6.4.4.4</a> <a href="#7.25.2.2">7.25.2.2</a>
-escape sequences, <a href="#5.2.1">5.2.1</a>, <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.11.4">6.11.4</a> extern storage-class specifier, <a href="#6.2.2">6.2.2</a>, <a href="#6.7.1">6.7.1</a>
-evaluation format, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#7.12">7.12</a> external definition, <a href="#6.9">6.9</a>
-evaluation method, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.5">6.5</a>, <a href="#F.7.5">F.7.5</a> external identifiers, underscore, <a href="#7.1.3">7.1.3</a>
-evaluation order, <a href="#6.5">6.5</a> external linkage, <a href="#6.2.2">6.2.2</a>
-exceptional condition, <a href="#6.5">6.5</a>, <a href="#7.12.1">7.12.1</a> external name, <a href="#6.4.2.1">6.4.2.1</a>
-excess precision, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.8">6.3.1.8</a>, external object definitions, <a href="#6.9.2">6.9.2</a>
- <a href="#6.8.6.4">6.8.6.4</a>
-excess range, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.8">6.3.1.8</a>, <a href="#6.8.6.4">6.8.6.4</a> fabs functions, <a href="#7.12.7.2">7.12.7.2</a>, <a href="#F.9.4.2">F.9.4.2</a>
-exclusive OR operators fabs type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
- bitwise (^), <a href="#6.5.11">6.5.11</a> false macro, <a href="#7.16">7.16</a>
- bitwise assignment (^=), <a href="#6.5.16.2">6.5.16.2</a> fclose function, <a href="#7.19.5.1">7.19.5.1</a>
-executable program, <a href="#5.1.1.1">5.1.1.1</a> fdim functions, <a href="#7.12.12.1">7.12.12.1</a>, <a href="#F.9.9.1">F.9.9.1</a>
-execution character set, <a href="#5.2.1">5.2.1</a> fdim type-generic macro, <a href="#7.22">7.22</a>
-execution environment, <a href="#5">5</a>, <a href="#5.1.2">5.1.2</a>, see also FE_ALL_EXCEPT macro, <a href="#7.6">7.6</a>
- environmental limits FE_DFL_ENV macro, <a href="#7.6">7.6</a>
-execution sequence, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#6.8">6.8</a> FE_DIVBYZERO macro, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
-exit function, <a href="#5.1.2.2.3">5.1.2.2.3</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.20">7.20</a>, <a href="#7.20.4.3">7.20.4.3</a>, FE_DOWNWARD macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
- <a href="#7.20.4.4">7.20.4.4</a> FE_INEXACT macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
-EXIT_FAILURE macro, <a href="#7.20">7.20</a>, <a href="#7.20.4.3">7.20.4.3</a> FE_INVALID macro, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
-EXIT_SUCCESS macro, <a href="#7.20">7.20</a>, <a href="#7.20.4.3">7.20.4.3</a> FE_OVERFLOW macro, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
-exp functions, <a href="#7.12.6.1">7.12.6.1</a>, <a href="#F.9.3.1">F.9.3.1</a> FE_TONEAREST macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
-exp type-generic macro, <a href="#7.22">7.22</a> FE_TOWARDZERO macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
-exp2 functions, <a href="#7.12.6.2">7.12.6.2</a>, <a href="#F.9.3.2">F.9.3.2</a> FE_UNDERFLOW macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
-exp2 type-generic macro, <a href="#7.22">7.22</a> FE_UPWARD macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
-explicit conversion, <a href="#6.3">6.3</a> feclearexcept function, <a href="#7.6.2">7.6.2</a>, <a href="#7.6.2.1">7.6.2.1</a>, <a href="#F.3">F.3</a>
-expm1 functions, <a href="#7.12.6.3">7.12.6.3</a>, <a href="#F.9.3.3">F.9.3.3</a> fegetenv function, <a href="#7.6.4.1">7.6.4.1</a>, <a href="#7.6.4.3">7.6.4.3</a>, <a href="#7.6.4.4">7.6.4.4</a>, <a href="#F.3">F.3</a>
-expm1 type-generic macro, <a href="#7.22">7.22</a> fegetexceptflag function, <a href="#7.6.2">7.6.2</a>, <a href="#7.6.2.2">7.6.2.2</a>, <a href="#F.3">F.3</a>
-exponent part, <a href="#6.4.4.2">6.4.4.2</a> fegetround function, <a href="#7.6">7.6</a>, <a href="#7.6.3.1">7.6.3.1</a>, <a href="#F.3">F.3</a>
-exponential functions feholdexcept function, <a href="#7.6.4.2">7.6.4.2</a>, <a href="#7.6.4.3">7.6.4.3</a>,
- complex, <a href="#7.3.7">7.3.7</a>, <a href="#G.6.3">G.6.3</a> <a href="#7.6.4.4">7.6.4.4</a>, <a href="#F.3">F.3</a>
- real, <a href="#7.12.6">7.12.6</a>, <a href="#F.9.3">F.9.3</a> fenv.h header, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F">F</a>, <a href="#H">H</a>
-expression, <a href="#6.5">6.5</a> FENV_ACCESS pragma, <a href="#6.10.6">6.10.6</a>, <a href="#7.6.1">7.6.1</a>, <a href="#F.7">F.7</a>, <a href="#F.8">F.8</a>,
- assignment, <a href="#6.5.16">6.5.16</a> <a href="#F.9">F.9</a>
- cast, <a href="#6.5.4">6.5.4</a> fenv_t type, <a href="#7.6">7.6</a>
- constant, <a href="#6.6">6.6</a> feof function, <a href="#7.19.10.2">7.19.10.2</a>
- full, <a href="#6.8">6.8</a> feraiseexcept function, <a href="#7.6.2">7.6.2</a>, <a href="#7.6.2.3">7.6.2.3</a>, <a href="#F.3">F.3</a>
- order of evaluation, <a href="#6.5">6.5</a> ferror function, <a href="#7.19.10.3">7.19.10.3</a>
- parenthesized, <a href="#6.5.1">6.5.1</a> fesetenv function, <a href="#7.6.4.3">7.6.4.3</a>, <a href="#F.3">F.3</a>
- primary, <a href="#6.5.1">6.5.1</a> fesetexceptflag function, <a href="#7.6.2">7.6.2</a>, <a href="#7.6.2.4">7.6.2.4</a>, <a href="#F.3">F.3</a>
- unary, <a href="#6.5.3">6.5.3</a> fesetround function, <a href="#7.6">7.6</a>, <a href="#7.6.3.2">7.6.3.2</a>, <a href="#F.3">F.3</a>
-expression statement, <a href="#6.8.3">6.8.3</a> fetestexcept function, <a href="#7.6.2">7.6.2</a>, <a href="#7.6.2.5">7.6.2.5</a>, <a href="#F.3">F.3</a>
-extended character set, <a href="#3.7.2">3.7.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#5.2.1.2">5.2.1.2</a> feupdateenv function, <a href="#7.6.4.2">7.6.4.2</a>, <a href="#7.6.4.4">7.6.4.4</a>, <a href="#F.3">F.3</a>
-
-[<a name="p526" href="#p526">page 526</a>] (<a href="#Contents">Contents</a>)
-
-fexcept_t type, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a> floating-point status flag, <a href="#7.6">7.6</a>, <a href="#F.7.6">F.7.6</a>
-fflush function, <a href="#7.19.5.2">7.19.5.2</a>, <a href="#7.19.5.3">7.19.5.3</a> floor functions, <a href="#7.12.9.2">7.12.9.2</a>, <a href="#F.9.6.2">F.9.6.2</a>
-fgetc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.7.1">7.19.7.1</a>, floor type-generic macro, <a href="#7.22">7.22</a>
- <a href="#7.19.7.5">7.19.7.5</a>, <a href="#7.19.8.1">7.19.8.1</a> FLT_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
-fgetpos function, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.9.1">7.19.9.1</a>, <a href="#7.19.9.3">7.19.9.3</a> FLT_EPSILON macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
-fgets function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.2">7.19.7.2</a> FLT_EVAL_METHOD macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.8.6.4">6.8.6.4</a>,
-fgetwc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.24.3.1">7.24.3.1</a>, <a href="#7.12">7.12</a>
- <a href="#7.24.3.6">7.24.3.6</a> FLT_MANT_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
-fgetws function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.2">7.24.3.2</a> FLT_MAX macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
-field width, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a> FLT_MAX_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
-file, <a href="#7.19.3">7.19.3</a> FLT_MAX_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- access functions, <a href="#7.19.5">7.19.5</a> FLT_MIN macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- name, <a href="#7.19.3">7.19.3</a> FLT_MIN_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- operations, <a href="#7.19.4">7.19.4</a> FLT_MIN_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
- position indicator, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.3">7.19.3</a>, FLT_RADIX macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.20.1.3">7.20.1.3</a>,
- <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.1">7.19.7.1</a>, <a href="#7.19.7.3">7.19.7.3</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>
- <a href="#7.19.8.1">7.19.8.1</a>, <a href="#7.19.8.2">7.19.8.2</a>, <a href="#7.19.9.1">7.19.9.1</a>, <a href="#7.19.9.2">7.19.9.2</a>, FLT_ROUNDS macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
- <a href="#7.19.9.3">7.19.9.3</a>, <a href="#7.19.9.4">7.19.9.4</a>, <a href="#7.19.9.5">7.19.9.5</a>, <a href="#7.24.3.1">7.24.3.1</a>, fma functions, <a href="#7.12">7.12</a>, <a href="#7.12.13.1">7.12.13.1</a>, <a href="#F.9.10.1">F.9.10.1</a>
- <a href="#7.24.3.3">7.24.3.3</a>, <a href="#7.24.3.10">7.24.3.10</a> fma type-generic macro, <a href="#7.22">7.22</a>
- positioning functions, <a href="#7.19.9">7.19.9</a> fmax functions, <a href="#7.12.12.2">7.12.12.2</a>, <a href="#F.9.9.2">F.9.9.2</a>
-file scope, <a href="#6.2.1">6.2.1</a>, <a href="#6.9">6.9</a> fmax type-generic macro, <a href="#7.22">7.22</a>
-FILE type, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a> fmin functions, <a href="#7.12.12.3">7.12.12.3</a>, <a href="#F.9.9.3">F.9.9.3</a>
-FILENAME_MAX macro, <a href="#7.19.1">7.19.1</a> fmin type-generic macro, <a href="#7.22">7.22</a>
-flags, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a> fmod functions, <a href="#7.12.10.1">7.12.10.1</a>, <a href="#F.9.7.1">F.9.7.1</a>
- floating-point status, see floating-point status fmod type-generic macro, <a href="#7.22">7.22</a>
- flag fopen function, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.5.4">7.19.5.4</a>
-flexible array member, <a href="#6.7.2.1">6.7.2.1</a> FOPEN_MAX macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.4.3">7.19.4.3</a>
-float _Complex type, <a href="#6.2.5">6.2.5</a> for statement, <a href="#6.8.5">6.8.5</a>, <a href="#6.8.5.3">6.8.5.3</a>
-float _Complex type conversion, <a href="#6.3.1.6">6.3.1.6</a>, form-feed character, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>
- <a href="#6.3.1.7">6.3.1.7</a>, <a href="#6.3.1.8">6.3.1.8</a> form-feed escape sequence (\f), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>,
-float _Imaginary type, <a href="#G.2">G.2</a> <a href="#7.4.1.10">7.4.1.10</a>
-float type, <a href="#6.2.5">6.2.5</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#6.7.2">6.7.2</a>, <a href="#F.2">F.2</a> formal argument (deprecated), <a href="#3.15">3.15</a>
-float type conversion, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.7">6.3.1.7</a>, formal parameter, <a href="#3.15">3.15</a>
- <a href="#6.3.1.8">6.3.1.8</a> formatted input/output functions, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.19.6">7.19.6</a>
-float.h header, <a href="#4">4</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.7">7.7</a>, <a href="#7.20.1.3">7.20.1.3</a>, wide character, <a href="#7.24.2">7.24.2</a>
- <a href="#7.24.4.1.1">7.24.4.1.1</a> fortran keyword, <a href="#J.5.9">J.5.9</a>
-float_t type, <a href="#7.12">7.12</a>, <a href="#J.5.6">J.5.6</a> forward reference, <a href="#3.11">3.11</a>
-floating constant, <a href="#6.4.4.2">6.4.4.2</a> FP_CONTRACT pragma, <a href="#6.5">6.5</a>, <a href="#6.10.6">6.10.6</a>, <a href="#7.12.2">7.12.2</a>, see
-floating suffix, f or <a href="#F">F</a>, <a href="#6.4.4.2">6.4.4.2</a> also contracted expression
-floating type conversion, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.7">6.3.1.7</a>, FP_FAST_FMA macro, <a href="#7.12">7.12</a>
- <a href="#F.3">F.3</a>, <a href="#F.4">F.4</a> FP_FAST_FMAF macro, <a href="#7.12">7.12</a>
-floating types, <a href="#6.2.5">6.2.5</a>, <a href="#6.11.1">6.11.1</a> FP_FAST_FMAL macro, <a href="#7.12">7.12</a>
-floating-point accuracy, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#6.5">6.5</a>, FP_ILOGB0 macro, <a href="#7.12">7.12</a>, <a href="#7.12.6.5">7.12.6.5</a>
- <a href="#7.20.1.3">7.20.1.3</a>, <a href="#F.5">F.5</a>, see also contracted expression FP_ILOGBNAN macro, <a href="#7.12">7.12</a>, <a href="#7.12.6.5">7.12.6.5</a>
-floating-point arithmetic functions, <a href="#7.12">7.12</a>, <a href="#F.9">F.9</a> FP_INFINITE macro, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
-floating-point classification functions, <a href="#7.12.3">7.12.3</a> FP_NAN macro, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
-floating-point control mode, <a href="#7.6">7.6</a>, <a href="#F.7.6">F.7.6</a> FP_NORMAL macro, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
-floating-point environment, <a href="#7.6">7.6</a>, <a href="#F.7">F.7</a>, <a href="#F.7.6">F.7.6</a> FP_SUBNORMAL macro, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
-floating-point exception, <a href="#7.6">7.6</a>, <a href="#7.6.2">7.6.2</a>, <a href="#F.9">F.9</a> FP_ZERO macro, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
-floating-point number, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.2.5">6.2.5</a> fpclassify macro, <a href="#7.12.3.1">7.12.3.1</a>, <a href="#F.3">F.3</a>
-floating-point rounding mode, <a href="#5.2.4.2.2">5.2.4.2.2</a> fpos_t type, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>
-
-[<a name="p527" href="#p527">page 527</a>] (<a href="#Contents">Contents</a>)
-
-fprintf function, <a href="#7.8.1">7.8.1</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.1">7.19.6.1</a>, language, <a href="#6.11">6.11</a>
- <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.19.6.3">7.19.6.3</a>, <a href="#7.19.6.5">7.19.6.5</a>, <a href="#7.19.6.6">7.19.6.6</a>, library, <a href="#7.26">7.26</a>
- <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#F.3">F.3</a> fwide function, <a href="#7.19.2">7.19.2</a>, <a href="#7.24.3.5">7.24.3.5</a>
-fputc function, <a href="#5.2.2">5.2.2</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.7.3">7.19.7.3</a>, fwprintf function, <a href="#7.8.1">7.8.1</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.2">7.19.6.2</a>,
- <a href="#7.19.7.8">7.19.7.8</a>, <a href="#7.19.8.2">7.19.8.2</a> <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#7.24.2.3">7.24.2.3</a>, <a href="#7.24.2.5">7.24.2.5</a>,
-fputs function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.4">7.19.7.4</a> <a href="#7.24.2.11">7.24.2.11</a>
-fputwc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.24.3.3">7.24.3.3</a>, fwrite function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.8.2">7.19.8.2</a>
- <a href="#7.24.3.8">7.24.3.8</a> fwscanf function, <a href="#7.8.1">7.8.1</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.2">7.24.2.2</a>,
-fputws function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.4">7.24.3.4</a> <a href="#7.24.2.4">7.24.2.4</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.12">7.24.2.12</a>, <a href="#7.24.3.10">7.24.3.10</a>
-fread function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.8.1">7.19.8.1</a>
-free function, <a href="#7.20.3.2">7.20.3.2</a>, <a href="#7.20.3.4">7.20.3.4</a> gamma functions, <a href="#7.12.8">7.12.8</a>, <a href="#F.9.5">F.9.5</a>
-freestanding execution environment, <a href="#4">4</a>, <a href="#5.1.2">5.1.2</a>, general utilities, <a href="#7.20">7.20</a>
- <a href="#5.1.2.1">5.1.2.1</a> wide string, <a href="#7.24.4">7.24.4</a>
-freopen function, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.5.4">7.19.5.4</a> general wide string utilities, <a href="#7.24.4">7.24.4</a>
-frexp functions, <a href="#7.12.6.4">7.12.6.4</a>, <a href="#F.9.3.4">F.9.3.4</a> generic parameters, <a href="#7.22">7.22</a>
-frexp type-generic macro, <a href="#7.22">7.22</a> getc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.5">7.19.7.5</a>, <a href="#7.19.7.6">7.19.7.6</a>
-fscanf function, <a href="#7.8.1">7.8.1</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, getchar function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.6">7.19.7.6</a>
- <a href="#7.19.6.4">7.19.6.4</a>, <a href="#7.19.6.7">7.19.6.7</a>, <a href="#7.19.6.9">7.19.6.9</a>, <a href="#F.3">F.3</a> getenv function, <a href="#7.20.4.5">7.20.4.5</a>
-fseek function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.11">7.19.7.11</a>, gets function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.7">7.19.7.7</a>, <a href="#7.26.9">7.26.9</a>
- <a href="#7.19.9.2">7.19.9.2</a>, <a href="#7.19.9.4">7.19.9.4</a>, <a href="#7.19.9.5">7.19.9.5</a>, <a href="#7.24.3.10">7.24.3.10</a> getwc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.6">7.24.3.6</a>, <a href="#7.24.3.7">7.24.3.7</a>
-fsetpos function, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.11">7.19.7.11</a>, getwchar function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.7">7.24.3.7</a>
- <a href="#7.19.9.1">7.19.9.1</a>, <a href="#7.19.9.3">7.19.9.3</a>, <a href="#7.24.3.10">7.24.3.10</a> gmtime function, <a href="#7.23.3.3">7.23.3.3</a>
-ftell function, <a href="#7.19.9.2">7.19.9.2</a>, <a href="#7.19.9.4">7.19.9.4</a> goto statement, <a href="#6.2.1">6.2.1</a>, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.6.1">6.8.6.1</a>
-full declarator, <a href="#6.7.5">6.7.5</a> graphic characters, <a href="#5.2.1">5.2.1</a>
-full expression, <a href="#6.8">6.8</a> greater-than operator (>), <a href="#6.5.8">6.5.8</a>
-fully buffered stream, <a href="#7.19.3">7.19.3</a> greater-than-or-equal-to operator (>=), <a href="#6.5.8">6.5.8</a>
-function
- argument, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.9.1">6.9.1</a> header, <a href="#5.1.1.1">5.1.1.1</a>, <a href="#7.1.2">7.1.2</a>, see also standard headers
- body, <a href="#6.9.1">6.9.1</a> header names, <a href="#6.4">6.4</a>, <a href="#6.4.7">6.4.7</a>, <a href="#6.10.2">6.10.2</a>
- call, <a href="#6.5.2.2">6.5.2.2</a> hexadecimal constant, <a href="#6.4.4.1">6.4.4.1</a>
- library, <a href="#7.1.4">7.1.4</a> hexadecimal digit, <a href="#6.4.4.1">6.4.4.1</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#6.4.4.4">6.4.4.4</a>
- declarator, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.11.6">6.11.6</a> hexadecimal prefix, <a href="#6.4.4.1">6.4.4.1</a>
- definition, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.9.1">6.9.1</a>, <a href="#6.11.7">6.11.7</a> hexadecimal-character escape sequence
- designator, <a href="#6.3.2.1">6.3.2.1</a> (\x hexadecimal digits), <a href="#6.4.4.4">6.4.4.4</a>
- image, <a href="#5.2.3">5.2.3</a> high-order bit, <a href="#3.6">3.6</a>
- library, <a href="#5.1.1.1">5.1.1.1</a>, <a href="#7.1.4">7.1.4</a> horizontal-tab character, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>
- name length, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.11.3">6.11.3</a> horizontal-tab escape sequence (\r), <a href="#7.25.2.1.3">7.25.2.1.3</a>
- parameter, <a href="#5.1.2.2.1">5.1.2.2.1</a>, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.7">6.7</a>, <a href="#6.9.1">6.9.1</a> horizontal-tab escape sequence (\t), <a href="#5.2.2">5.2.2</a>,
- prototype, <a href="#5.1.2.2.1">5.1.2.2.1</a>, <a href="#6.2.1">6.2.1</a>, <a href="#6.2.7">6.2.7</a>, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.7">6.7</a>, <a href="#6.4.4.4">6.4.4.4</a>, <a href="#7.4.1.3">7.4.1.3</a>, <a href="#7.4.1.10">7.4.1.10</a>
- <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.9.1">6.9.1</a>, <a href="#6.11.6">6.11.6</a>, <a href="#6.11.7">6.11.7</a>, <a href="#7.1.2">7.1.2</a>, <a href="#7.12">7.12</a> hosted execution environment, <a href="#4">4</a>, <a href="#5.1.2">5.1.2</a>, <a href="#5.1.2.2">5.1.2.2</a>
- prototype scope, <a href="#6.2.1">6.2.1</a>, <a href="#6.7.5.2">6.7.5.2</a> HUGE_VAL macro, <a href="#7.12">7.12</a>, <a href="#7.12.1">7.12.1</a>, <a href="#7.20.1.3">7.20.1.3</a>,
- recursive call, <a href="#6.5.2.2">6.5.2.2</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#F.9">F.9</a>
- return, <a href="#6.8.6.4">6.8.6.4</a> HUGE_VALF macro, <a href="#7.12">7.12</a>, <a href="#7.12.1">7.12.1</a>, <a href="#7.20.1.3">7.20.1.3</a>,
- scope, <a href="#6.2.1">6.2.1</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#F.9">F.9</a>
- type, <a href="#6.2.5">6.2.5</a> HUGE_VALL macro, <a href="#7.12">7.12</a>, <a href="#7.12.1">7.12.1</a>, <a href="#7.20.1.3">7.20.1.3</a>,
- type conversion, <a href="#6.3.2.1">6.3.2.1</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#F.9">F.9</a>
-function specifiers, <a href="#6.7.4">6.7.4</a> hyperbolic functions
-function type, <a href="#6.2.5">6.2.5</a> complex, <a href="#7.3.6">7.3.6</a>, <a href="#G.6.2">G.6.2</a>
-function-call operator (( )), <a href="#6.5.2.2">6.5.2.2</a> real, <a href="#7.12.5">7.12.5</a>, <a href="#F.9.2">F.9.2</a>
-function-like macro, <a href="#6.10.3">6.10.3</a> hypot functions, <a href="#7.12.7.3">7.12.7.3</a>, <a href="#F.9.4.3">F.9.4.3</a>
-future directions hypot type-generic macro, <a href="#7.22">7.22</a>
-
-[<a name="p528" href="#p528">page 528</a>] (<a href="#Contents">Contents</a>)
-
-I macro, <a href="#7.3.1">7.3.1</a>, <a href="#7.3.9.4">7.3.9.4</a>, <a href="#G.6">G.6</a> initial position, <a href="#5.2.2">5.2.2</a>
-identifier, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.5.1">6.5.1</a> initial shift state, <a href="#5.2.1.2">5.2.1.2</a>
- linkage, see linkage initialization, <a href="#5.1.2">5.1.2</a>, <a href="#6.2.4">6.2.4</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.5">6.5.2.5</a>, <a href="#6.7.8">6.7.8</a>,
- maximum length, <a href="#6.4.2.1">6.4.2.1</a> <a href="#F.7.5">F.7.5</a>
- name spaces, <a href="#6.2.3">6.2.3</a> in blocks, <a href="#6.8">6.8</a>
- reserved, <a href="#6.4.1">6.4.1</a>, <a href="#7.1.3">7.1.3</a> initializer, <a href="#6.7.8">6.7.8</a>
- scope, <a href="#6.2.1">6.2.1</a> permitted form, <a href="#6.6">6.6</a>
- type, <a href="#6.2.5">6.2.5</a> string literal, <a href="#6.3.2.1">6.3.2.1</a>
-identifier list, <a href="#6.7.5">6.7.5</a> inline, <a href="#6.7.4">6.7.4</a>
-identifier nondigit, <a href="#6.4.2.1">6.4.2.1</a> inner scope, <a href="#6.2.1">6.2.1</a>
-IEC 559, <a href="#F.1">F.1</a> input failure, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.8">7.24.2.8</a>, <a href="#7.24.2.10">7.24.2.10</a>
-IEC 60559, <a href="#2">2</a>, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.10.8">6.10.8</a>, <a href="#7.3.3">7.3.3</a>, <a href="#7.6">7.6</a>, input/output functions
- <a href="#7.6.4.2">7.6.4.2</a>, <a href="#7.12.1">7.12.1</a>, <a href="#7.12.10.2">7.12.10.2</a>, <a href="#7.12.14">7.12.14</a>, <a href="#F">F</a>, <a href="#G">G</a>, <a href="#H.1">H.1</a> character, <a href="#7.19.7">7.19.7</a>
-IEEE 754, <a href="#F.1">F.1</a> direct, <a href="#7.19.8">7.19.8</a>
-IEEE 854, <a href="#F.1">F.1</a> formatted, <a href="#7.19.6">7.19.6</a>
-IEEE floating-point arithmetic standard, see wide character, <a href="#7.24.2">7.24.2</a>
- IEC 60559, ANSI/IEEE 754, wide character, <a href="#7.24.3">7.24.3</a>
- ANSI/IEEE 854 formatted, <a href="#7.24.2">7.24.2</a>
-if preprocessing directive, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, input/output header, <a href="#7.19">7.19</a>
- <a href="#6.10.1">6.10.1</a>, <a href="#7.1.4">7.1.4</a> input/output, device, <a href="#5.1.2.3">5.1.2.3</a>
-if statement, <a href="#6.8.4.1">6.8.4.1</a> int type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.4.4.1">6.4.4.1</a>, <a href="#6.7.2">6.7.2</a>
-ifdef preprocessing directive, <a href="#6.10.1">6.10.1</a> int type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.3.1.4">6.3.1.4</a>,
-ifndef preprocessing directive, <a href="#6.10.1">6.10.1</a> <a href="#6.3.1.8">6.3.1.8</a>
-ilogb functions, <a href="#7.12">7.12</a>, <a href="#7.12.6.5">7.12.6.5</a>, <a href="#F.9.3.5">F.9.3.5</a> INT_FASTN_MAX macros, <a href="#7.18.2.3">7.18.2.3</a>
-ilogb type-generic macro, <a href="#7.22">7.22</a> INT_FASTN_MIN macros, <a href="#7.18.2.3">7.18.2.3</a>
-imaginary macro, <a href="#7.3.1">7.3.1</a>, <a href="#G.6">G.6</a> int_fastN_t types, <a href="#7.18.1.3">7.18.1.3</a>
-imaginary numbers, <a href="#G">G</a> INT_LEASTN_MAX macros, <a href="#7.18.2.2">7.18.2.2</a>
-imaginary type domain, <a href="#G.2">G.2</a> INT_LEASTN_MIN macros, <a href="#7.18.2.2">7.18.2.2</a>
-imaginary types, <a href="#G">G</a> int_leastN_t types, <a href="#7.18.1.2">7.18.1.2</a>
-imaxabs function, <a href="#7.8.2.1">7.8.2.1</a> INT_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.12">7.12</a>, <a href="#7.12.6.5">7.12.6.5</a>
-imaxdiv function, <a href="#7.8">7.8</a>, <a href="#7.8.2.2">7.8.2.2</a> INT_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.12">7.12</a>
-imaxdiv_t type, <a href="#7.8">7.8</a> integer arithmetic functions, <a href="#7.8.2.1">7.8.2.1</a>, <a href="#7.8.2.2">7.8.2.2</a>,
-implementation, <a href="#3.12">3.12</a> <a href="#7.20.6">7.20.6</a>
-implementation limit, <a href="#3.13">3.13</a>, <a href="#4">4</a>, <a href="#5.2.4.2">5.2.4.2</a>, <a href="#6.4.2.1">6.4.2.1</a>, integer character constant, <a href="#6.4.4.4">6.4.4.4</a>
- <a href="#6.7.5">6.7.5</a>, <a href="#6.8.4.2">6.8.4.2</a>, <a href="#E">E</a>, see also environmental integer constant, <a href="#6.4.4.1">6.4.4.1</a>
- limits integer constant expression, <a href="#6.6">6.6</a>
-implementation-defined behavior, <a href="#3.4.1">3.4.1</a>, <a href="#4">4</a>, <a href="#J.3">J.3</a> integer conversion rank, <a href="#6.3.1.1">6.3.1.1</a>
-implementation-defined value, <a href="#3.17.1">3.17.1</a> integer promotions, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#6.3.1.1">6.3.1.1</a>,
-implicit conversion, <a href="#6.3">6.3</a> <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.5.3.3">6.5.3.3</a>, <a href="#6.5.7">6.5.7</a>, <a href="#6.8.4.2">6.8.4.2</a>, <a href="#7.18.2">7.18.2</a>, <a href="#7.18.3">7.18.3</a>,
-implicit initialization, <a href="#6.7.8">6.7.8</a> <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>
-include preprocessing directive, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.10.2">6.10.2</a> integer suffix, <a href="#6.4.4.1">6.4.4.1</a>
-inclusive OR operators integer type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.3.1.4">6.3.1.4</a>,
- bitwise (|), <a href="#6.5.12">6.5.12</a> <a href="#F.3">F.3</a>, <a href="#F.4">F.4</a>
- bitwise assignment (|=), <a href="#6.5.16.2">6.5.16.2</a> integer types, <a href="#6.2.5">6.2.5</a>, <a href="#7.18">7.18</a>
-incomplete type, <a href="#6.2.5">6.2.5</a> extended, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.4.4.1">6.4.4.1</a>, <a href="#7.18">7.18</a>
-increment operators, see arithmetic operators, interactive device, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.5.3">7.19.5.3</a>
- increment and decrement internal linkage, <a href="#6.2.2">6.2.2</a>
-indeterminate value, <a href="#3.17.2">3.17.2</a> internal name, <a href="#6.4.2.1">6.4.2.1</a>
-indirection operator (*), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> interrupt, <a href="#5.2.3">5.2.3</a>
-inequality operator (!=), <a href="#6.5.9">6.5.9</a> INTMAX_C macro, <a href="#7.18.4.2">7.18.4.2</a>
-INFINITY macro, <a href="#7.3.9.4">7.3.9.4</a>, <a href="#7.12">7.12</a>, <a href="#F.2.1">F.2.1</a> INTMAX_MAX macro, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.18.2.5">7.18.2.5</a>
-
-[<a name="p529" href="#p529">page 529</a>] (<a href="#Contents">Contents</a>)
-
-INTMAX_MIN macro, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.18.2.5">7.18.2.5</a> iswalpha function, <a href="#7.25.2.1.1">7.25.2.1.1</a>, <a href="#7.25.2.1.2">7.25.2.1.2</a>,
-intmax_t type, <a href="#7.18.1.5">7.18.1.5</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
- <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> iswblank function, <a href="#7.25.2.1.3">7.25.2.1.3</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
-INTN_C macros, <a href="#7.18.4.1">7.18.4.1</a> iswcntrl function, <a href="#7.25.2.1.2">7.25.2.1.2</a>, <a href="#7.25.2.1.4">7.25.2.1.4</a>,
-INTN_MAX macros, <a href="#7.18.2.1">7.18.2.1</a> <a href="#7.25.2.1.7">7.25.2.1.7</a>, <a href="#7.25.2.1.11">7.25.2.1.11</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
-INTN_MIN macros, <a href="#7.18.2.1">7.18.2.1</a> iswctype function, <a href="#7.25.2.2.1">7.25.2.2.1</a>, <a href="#7.25.2.2.2">7.25.2.2.2</a>
-intN_t types, <a href="#7.18.1.1">7.18.1.1</a> iswdigit function, <a href="#7.25.2.1.1">7.25.2.1.1</a>, <a href="#7.25.2.1.2">7.25.2.1.2</a>,
-INTPTR_MAX macro, <a href="#7.18.2.4">7.18.2.4</a> <a href="#7.25.2.1.5">7.25.2.1.5</a>, <a href="#7.25.2.1.7">7.25.2.1.7</a>, <a href="#7.25.2.1.11">7.25.2.1.11</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
-INTPTR_MIN macro, <a href="#7.18.2.4">7.18.2.4</a> iswgraph function, <a href="#7.25.2.1">7.25.2.1</a>, <a href="#7.25.2.1.6">7.25.2.1.6</a>,
-intptr_t type, <a href="#7.18.1.4">7.18.1.4</a> <a href="#7.25.2.1.10">7.25.2.1.10</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
-inttypes.h header, <a href="#7.8">7.8</a>, <a href="#7.26.4">7.26.4</a> iswlower function, <a href="#7.25.2.1.2">7.25.2.1.2</a>, <a href="#7.25.2.1.7">7.25.2.1.7</a>,
-isalnum function, <a href="#7.4.1.1">7.4.1.1</a>, <a href="#7.4.1.9">7.4.1.9</a>, <a href="#7.4.1.10">7.4.1.10</a> <a href="#7.25.2.2.1">7.25.2.2.1</a>, <a href="#7.25.3.1.1">7.25.3.1.1</a>, <a href="#7.25.3.1.2">7.25.3.1.2</a>
-isalpha function, <a href="#7.4.1.1">7.4.1.1</a>, <a href="#7.4.1.2">7.4.1.2</a> iswprint function, <a href="#7.25.2.1.6">7.25.2.1.6</a>, <a href="#7.25.2.1.8">7.25.2.1.8</a>,
-isblank function, <a href="#7.4.1.3">7.4.1.3</a> <a href="#7.25.2.2.1">7.25.2.2.1</a>
-iscntrl function, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.4">7.4.1.4</a>, <a href="#7.4.1.7">7.4.1.7</a>, iswpunct function, <a href="#7.25.2.1">7.25.2.1</a>, <a href="#7.25.2.1.2">7.25.2.1.2</a>,
- <a href="#7.4.1.11">7.4.1.11</a> <a href="#7.25.2.1.7">7.25.2.1.7</a>, <a href="#7.25.2.1.9">7.25.2.1.9</a>, <a href="#7.25.2.1.10">7.25.2.1.10</a>,
-isdigit function, <a href="#7.4.1.1">7.4.1.1</a>, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.5">7.4.1.5</a>, <a href="#7.25.2.1.11">7.25.2.1.11</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
- <a href="#7.4.1.7">7.4.1.7</a>, <a href="#7.4.1.11">7.4.1.11</a>, <a href="#7.11.1.1">7.11.1.1</a> iswspace function, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>,
-isfinite macro, <a href="#7.12.3.2">7.12.3.2</a>, <a href="#F.3">F.3</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a>, <a href="#7.25.2.1.2">7.25.2.1.2</a>, <a href="#7.25.2.1.6">7.25.2.1.6</a>,
-isgraph function, <a href="#7.4.1.6">7.4.1.6</a> <a href="#7.25.2.1.7">7.25.2.1.7</a>, <a href="#7.25.2.1.9">7.25.2.1.9</a>, <a href="#7.25.2.1.10">7.25.2.1.10</a>,
-isgreater macro, <a href="#7.12.14.1">7.12.14.1</a>, <a href="#F.3">F.3</a> <a href="#7.25.2.1.11">7.25.2.1.11</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
-isgreaterequal macro, <a href="#7.12.14.2">7.12.14.2</a>, <a href="#F.3">F.3</a> iswupper function, <a href="#7.25.2.1.2">7.25.2.1.2</a>, <a href="#7.25.2.1.11">7.25.2.1.11</a>,
-isinf macro, <a href="#7.12.3.3">7.12.3.3</a> <a href="#7.25.2.2.1">7.25.2.2.1</a>, <a href="#7.25.3.1.1">7.25.3.1.1</a>, <a href="#7.25.3.1.2">7.25.3.1.2</a>
-isless macro, <a href="#7.12.14.3">7.12.14.3</a>, <a href="#F.3">F.3</a> iswxdigit function, <a href="#7.25.2.1.12">7.25.2.1.12</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
-islessequal macro, <a href="#7.12.14.4">7.12.14.4</a>, <a href="#F.3">F.3</a> isxdigit function, <a href="#7.4.1.12">7.4.1.12</a>, <a href="#7.11.1.1">7.11.1.1</a>
-islessgreater macro, <a href="#7.12.14.5">7.12.14.5</a>, <a href="#F.3">F.3</a> italic type convention, <a href="#3">3</a>, <a href="#6.1">6.1</a>
-islower function, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.7">7.4.1.7</a>, <a href="#7.4.2.1">7.4.2.1</a>, iteration statements, <a href="#6.8.5">6.8.5</a>
- <a href="#7.4.2.2">7.4.2.2</a>
-isnan macro, <a href="#7.12.3.4">7.12.3.4</a>, <a href="#F.3">F.3</a> jmp_buf type, <a href="#7.13">7.13</a>
-isnormal macro, <a href="#7.12.3.5">7.12.3.5</a> jump statements, <a href="#6.8.6">6.8.6</a>
-ISO 31-11, <a href="#2">2</a>, <a href="#3">3</a>
-ISO 4217, <a href="#2">2</a>, <a href="#7.11.2.1">7.11.2.1</a> keywords, <a href="#6.4.1">6.4.1</a>, <a href="#G.2">G.2</a>, <a href="#J.5.9">J.5.9</a>, <a href="#J.5.10">J.5.10</a>
-ISO 8601, <a href="#2">2</a>, <a href="#7.23.3.5">7.23.3.5</a> known constant size, <a href="#6.2.5">6.2.5</a>
-ISO/IEC 10646, <a href="#2">2</a>, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.4.3">6.4.3</a>, <a href="#6.10.8">6.10.8</a>
-ISO/IEC 10976-1, <a href="#H.1">H.1</a> <a href="#L">L</a>_tmpnam macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.4.4">7.19.4.4</a>
-ISO/IEC 2382-1, <a href="#2">2</a>, <a href="#3">3</a> label name, <a href="#6.2.1">6.2.1</a>, <a href="#6.2.3">6.2.3</a>
-ISO/IEC 646, <a href="#2">2</a>, <a href="#5.2.1.1">5.2.1.1</a> labeled statement, <a href="#6.8.1">6.8.1</a>
-ISO/IEC 9945-2, <a href="#7.11">7.11</a> labs function, <a href="#7.20.6.1">7.20.6.1</a>
-ISO/IEC TR 10176, <a href="#D">D</a> language, <a href="#6">6</a>
-iso646.h header, <a href="#4">4</a>, <a href="#7.9">7.9</a> future directions, <a href="#6.11">6.11</a>
-isprint function, <a href="#5.2.2">5.2.2</a>, <a href="#7.4.1.8">7.4.1.8</a> syntax summary, <a href="#A">A</a>
-ispunct function, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.7">7.4.1.7</a>, <a href="#7.4.1.9">7.4.1.9</a>, Latin alphabet, <a href="#5.2.1">5.2.1</a>, <a href="#6.4.2.1">6.4.2.1</a>
- <a href="#7.4.1.11">7.4.1.11</a> LC_ALL macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
-isspace function, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.7">7.4.1.7</a>, <a href="#7.4.1.9">7.4.1.9</a>, LC_COLLATE macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.21.4.3">7.21.4.3</a>,
- <a href="#7.4.1.10">7.4.1.10</a>, <a href="#7.4.1.11">7.4.1.11</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.24.4.4.2">7.24.4.4.2</a>
- <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.2.2">7.24.2.2</a> LC_CTYPE macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.20">7.20</a>, <a href="#7.20.7">7.20.7</a>,
-isunordered macro, <a href="#7.12.14.6">7.12.14.6</a>, <a href="#F.3">F.3</a> <a href="#7.20.8">7.20.8</a>, <a href="#7.24.6">7.24.6</a>, <a href="#7.25.1">7.25.1</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>, <a href="#7.25.2.2.2">7.25.2.2.2</a>,
-isupper function, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.11">7.4.1.11</a>, <a href="#7.4.2.1">7.4.2.1</a>, <a href="#7.25.3.2.1">7.25.3.2.1</a>, <a href="#7.25.3.2.2">7.25.3.2.2</a>
- <a href="#7.4.2.2">7.4.2.2</a> LC_MONETARY macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
-iswalnum function, <a href="#7.25.2.1.1">7.25.2.1.1</a>, <a href="#7.25.2.1.9">7.25.2.1.9</a>, LC_NUMERIC macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
- <a href="#7.25.2.1.10">7.25.2.1.10</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a> LC_TIME macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.23.3.5">7.23.3.5</a>
-
-[<a name="p530" href="#p530">page 530</a>] (<a href="#Contents">Contents</a>)
-
-lconv structure type, <a href="#7.11">7.11</a> llabs function, <a href="#7.20.6.1">7.20.6.1</a>
-LDBL_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> lldiv function, <a href="#7.20.6.2">7.20.6.2</a>
-LDBL_EPSILON macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> lldiv_t type, <a href="#7.20">7.20</a>
-LDBL_MANT_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> LLONG_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>,
-LDBL_MAX macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> <a href="#7.24.4.1.2">7.24.4.1.2</a>
-LDBL_MAX_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> LLONG_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>,
-LDBL_MAX_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> <a href="#7.24.4.1.2">7.24.4.1.2</a>
-LDBL_MIN macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> llrint functions, <a href="#7.12.9.5">7.12.9.5</a>, <a href="#F.3">F.3</a>, <a href="#F.9.6.5">F.9.6.5</a>
-LDBL_MIN_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> llrint type-generic macro, <a href="#7.22">7.22</a>
-LDBL_MIN_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> llround functions, <a href="#7.12.9.7">7.12.9.7</a>, <a href="#F.9.6.7">F.9.6.7</a>
-ldexp functions, <a href="#7.12.6.6">7.12.6.6</a>, <a href="#F.9.3.6">F.9.3.6</a> llround type-generic macro, <a href="#7.22">7.22</a>
-ldexp type-generic macro, <a href="#7.22">7.22</a> local time, <a href="#7.23.1">7.23.1</a>
-ldiv function, <a href="#7.20.6.2">7.20.6.2</a> locale, <a href="#3.4.2">3.4.2</a>
-ldiv_t type, <a href="#7.20">7.20</a> locale-specific behavior, <a href="#3.4.2">3.4.2</a>, <a href="#J.4">J.4</a>
-leading underscore in identifiers, <a href="#7.1.3">7.1.3</a> locale.h header, <a href="#7.11">7.11</a>, <a href="#7.26.5">7.26.5</a>
-left-shift assignment operator (<<=), <a href="#6.5.16.2">6.5.16.2</a> localeconv function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
-left-shift operator (<<), <a href="#6.5.7">6.5.7</a> localization, <a href="#7.11">7.11</a>
-length localtime function, <a href="#7.23.3.4">7.23.3.4</a>
- external name, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.11.3">6.11.3</a> log functions, <a href="#7.12.6.7">7.12.6.7</a>, <a href="#F.9.3.7">F.9.3.7</a>
- function name, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.11.3">6.11.3</a> log type-generic macro, <a href="#7.22">7.22</a>
- identifier, <a href="#6.4.2.1">6.4.2.1</a> log10 functions, <a href="#7.12.6.8">7.12.6.8</a>, <a href="#F.9.3.8">F.9.3.8</a>
- internal name, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a> log10 type-generic macro, <a href="#7.22">7.22</a>
-length function, <a href="#7.20.7.1">7.20.7.1</a>, <a href="#7.21.6.3">7.21.6.3</a>, <a href="#7.24.4.6.1">7.24.4.6.1</a>, log1p functions, <a href="#7.12.6.9">7.12.6.9</a>, <a href="#F.9.3.9">F.9.3.9</a>
- <a href="#7.24.6.3.1">7.24.6.3.1</a> log1p type-generic macro, <a href="#7.22">7.22</a>
-length modifier, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, log2 functions, <a href="#7.12.6.10">7.12.6.10</a>, <a href="#F.9.3.10">F.9.3.10</a>
- <a href="#7.24.2.2">7.24.2.2</a> log2 type-generic macro, <a href="#7.22">7.22</a>
-less-than operator (<), <a href="#6.5.8">6.5.8</a> logarithmic functions
-less-than-or-equal-to operator (<=), <a href="#6.5.8">6.5.8</a> complex, <a href="#7.3.7">7.3.7</a>, <a href="#G.6.3">G.6.3</a>
-letter, <a href="#5.2.1">5.2.1</a>, <a href="#7.4">7.4</a> real, <a href="#7.12.6">7.12.6</a>, <a href="#F.9.3">F.9.3</a>
-lexical elements, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.4">6.4</a> logb functions, <a href="#7.12.6.11">7.12.6.11</a>, <a href="#F.3">F.3</a>, <a href="#F.9.3.11">F.9.3.11</a>
-lgamma functions, <a href="#7.12.8.3">7.12.8.3</a>, <a href="#F.9.5.3">F.9.5.3</a> logb type-generic macro, <a href="#7.22">7.22</a>
-lgamma type-generic macro, <a href="#7.22">7.22</a> logical operators
-library, <a href="#5.1.1.1">5.1.1.1</a>, <a href="#7">7</a> AND (&&), <a href="#6.5.13">6.5.13</a>
- future directions, <a href="#7.26">7.26</a> negation (!), <a href="#6.5.3.3">6.5.3.3</a>
- summary, <a href="#B">B</a> OR (||), <a href="#6.5.14">6.5.14</a>
- terms, <a href="#7.1.1">7.1.1</a> logical source lines, <a href="#5.1.1.2">5.1.1.2</a>
- use of functions, <a href="#7.1.4">7.1.4</a> long double _Complex type, <a href="#6.2.5">6.2.5</a>
-lifetime, <a href="#6.2.4">6.2.4</a> long double _Complex type conversion,
-limits <a href="#6.3.1.6">6.3.1.6</a>, <a href="#6.3.1.7">6.3.1.7</a>, <a href="#6.3.1.8">6.3.1.8</a>
- environmental, see environmental limits long double _Imaginary type, <a href="#G.2">G.2</a>
- implementation, see implementation limits long double suffix, l or <a href="#L">L</a>, <a href="#6.4.4.2">6.4.4.2</a>
- numerical, see numerical limits long double type, <a href="#6.2.5">6.2.5</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#6.7.2">6.7.2</a>,
- translation, see translation limits <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#F.2">F.2</a>
-limits.h header, <a href="#4">4</a>, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#6.2.5">6.2.5</a>, <a href="#7.10">7.10</a> long double type conversion, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.5">6.3.1.5</a>,
-line buffered stream, <a href="#7.19.3">7.19.3</a> <a href="#6.3.1.7">6.3.1.7</a>, <a href="#6.3.1.8">6.3.1.8</a>
-line number, <a href="#6.10.4">6.10.4</a>, <a href="#6.10.8">6.10.8</a> long int type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.7.2">6.7.2</a>, <a href="#7.19.6.1">7.19.6.1</a>,
-line preprocessing directive, <a href="#6.10.4">6.10.4</a> <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>
-lines, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#7.19.2">7.19.2</a> long int type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>,
- preprocessing directive, <a href="#6.10">6.10</a> <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.8">6.3.1.8</a>
-linkage, <a href="#6.2.2">6.2.2</a>, <a href="#6.7">6.7</a>, <a href="#6.7.4">6.7.4</a>, <a href="#6.7.5.2">6.7.5.2</a>, <a href="#6.9">6.9</a>, <a href="#6.9.2">6.9.2</a>, long integer suffix, l or <a href="#L">L</a>, <a href="#6.4.4.1">6.4.4.1</a>
- <a href="#6.11.2">6.11.2</a> long long int type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.7.2">6.7.2</a>,
-
-[<a name="p531" href="#p531">page 531</a>] (<a href="#Contents">Contents</a>)
-
- <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> mbsinit function, <a href="#7.24.6.2.1">7.24.6.2.1</a>
-long long int type conversion, <a href="#6.3.1.1">6.3.1.1</a>, mbsrtowcs function, <a href="#7.24.6.4.1">7.24.6.4.1</a>
- <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.8">6.3.1.8</a> mbstate_t type, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.6.1">7.19.6.1</a>,
-long long integer suffix, ll or LL, <a href="#6.4.4.1">6.4.4.1</a> <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.1">7.24.1</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#7.24.6">7.24.6</a>,
-LONG_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a> <a href="#7.24.6.2.1">7.24.6.2.1</a>, <a href="#7.24.6.3">7.24.6.3</a>, <a href="#7.24.6.3.1">7.24.6.3.1</a>, <a href="#7.24.6.4">7.24.6.4</a>
-LONG_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a> mbstowcs function, <a href="#6.4.5">6.4.5</a>, <a href="#7.20.8.1">7.20.8.1</a>, <a href="#7.24.6.4">7.24.6.4</a>
-longjmp function, <a href="#7.13.1.1">7.13.1.1</a>, <a href="#7.13.2.1">7.13.2.1</a>, <a href="#7.20.4.3">7.20.4.3</a> mbtowc function, <a href="#7.20.7.1">7.20.7.1</a>, <a href="#7.20.7.2">7.20.7.2</a>, <a href="#7.20.8.1">7.20.8.1</a>,
-loop body, <a href="#6.8.5">6.8.5</a> <a href="#7.24.6.3">7.24.6.3</a>
-low-order bit, <a href="#3.6">3.6</a> member access operators (. and ->), <a href="#6.5.2.3">6.5.2.3</a>
-lowercase letter, <a href="#5.2.1">5.2.1</a> member alignment, <a href="#6.7.2.1">6.7.2.1</a>
-lrint functions, <a href="#7.12.9.5">7.12.9.5</a>, <a href="#F.3">F.3</a>, <a href="#F.9.6.5">F.9.6.5</a> memchr function, <a href="#7.21.5.1">7.21.5.1</a>
-lrint type-generic macro, <a href="#7.22">7.22</a> memcmp function, <a href="#7.21.4">7.21.4</a>, <a href="#7.21.4.1">7.21.4.1</a>
-lround functions, <a href="#7.12.9.7">7.12.9.7</a>, <a href="#F.9.6.7">F.9.6.7</a> memcpy function, <a href="#7.21.2.1">7.21.2.1</a>
-lround type-generic macro, <a href="#7.22">7.22</a> memmove function, <a href="#7.21.2.2">7.21.2.2</a>
-lvalue, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.1">6.5.1</a>, <a href="#6.5.2.4">6.5.2.4</a>, <a href="#6.5.3.1">6.5.3.1</a>, <a href="#6.5.16">6.5.16</a> memory management functions, <a href="#7.20.3">7.20.3</a>
- memset function, <a href="#7.21.6.1">7.21.6.1</a>
-macro argument substitution, <a href="#6.10.3.1">6.10.3.1</a> minimum functions, <a href="#7.12.12">7.12.12</a>, <a href="#F.9.9">F.9.9</a>
-macro definition minus operator, unary, <a href="#6.5.3.3">6.5.3.3</a>
- library function, <a href="#7.1.4">7.1.4</a> miscellaneous functions
-macro invocation, <a href="#6.10.3">6.10.3</a> string, <a href="#7.21.6">7.21.6</a>
-macro name, <a href="#6.10.3">6.10.3</a> wide string, <a href="#7.24.4.6">7.24.4.6</a>
- length, <a href="#5.2.4.1">5.2.4.1</a> mktime function, <a href="#7.23.2.3">7.23.2.3</a>
- predefined, <a href="#6.10.8">6.10.8</a>, <a href="#6.11.9">6.11.9</a> modf functions, <a href="#7.12.6.12">7.12.6.12</a>, <a href="#F.9.3.12">F.9.3.12</a>
- redefinition, <a href="#6.10.3">6.10.3</a> modifiable lvalue, <a href="#6.3.2.1">6.3.2.1</a>
- scope, <a href="#6.10.3.5">6.10.3.5</a> modulus functions, <a href="#7.12.6.12">7.12.6.12</a>
-macro parameter, <a href="#6.10.3">6.10.3</a> modulus, complex, <a href="#7.3.8.1">7.3.8.1</a>
-macro preprocessor, <a href="#6.10">6.10</a> multibyte character, <a href="#3.7.2">3.7.2</a>, <a href="#5.2.1.2">5.2.1.2</a>, <a href="#6.4.4.4">6.4.4.4</a>
-macro replacement, <a href="#6.10.3">6.10.3</a> multibyte conversion functions
-magnitude, complex, <a href="#7.3.8.1">7.3.8.1</a> wide character, <a href="#7.20.7">7.20.7</a>
-main function, <a href="#5.1.2.2.1">5.1.2.2.1</a>, <a href="#5.1.2.2.3">5.1.2.2.3</a>, <a href="#6.7.3.1">6.7.3.1</a>, <a href="#6.7.4">6.7.4</a>, extended, <a href="#7.24.6">7.24.6</a>
- <a href="#7.19.3">7.19.3</a> restartable, <a href="#7.24.6.3">7.24.6.3</a>
-malloc function, <a href="#7.20.3">7.20.3</a>, <a href="#7.20.3.2">7.20.3.2</a>, <a href="#7.20.3.3">7.20.3.3</a>, wide string, <a href="#7.20.8">7.20.8</a>
- <a href="#7.20.3.4">7.20.3.4</a> restartable, <a href="#7.24.6.4">7.24.6.4</a>
-manipulation functions multibyte string, <a href="#7.1.1">7.1.1</a>
- complex, <a href="#7.3.9">7.3.9</a> multibyte/wide character conversion functions,
- real, <a href="#7.12.11">7.12.11</a>, <a href="#F.9.8">F.9.8</a> <a href="#7.20.7">7.20.7</a>
-matching failure, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.8">7.24.2.8</a>, <a href="#7.24.2.10">7.24.2.10</a> extended, <a href="#7.24.6">7.24.6</a>
-math.h header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.5">6.5</a>, <a href="#7.12">7.12</a>, <a href="#7.22">7.22</a>, <a href="#F">F</a>, <a href="#F.9">F.9</a>, restartable, <a href="#7.24.6.3">7.24.6.3</a>
- <a href="#J.5.17">J.5.17</a> multibyte/wide string conversion functions, <a href="#7.20.8">7.20.8</a>
-MATH_ERREXCEPT macro, <a href="#7.12">7.12</a>, <a href="#F.9">F.9</a> restartable, <a href="#7.24.6.4">7.24.6.4</a>
-math_errhandling macro, <a href="#7.1.3">7.1.3</a>, <a href="#7.12">7.12</a>, <a href="#F.9">F.9</a> multidimensional array, <a href="#6.5.2.1">6.5.2.1</a>
-MATH_ERRNO macro, <a href="#7.12">7.12</a> multiplication assignment operator (*=), <a href="#6.5.16.2">6.5.16.2</a>
-maximum functions, <a href="#7.12.12">7.12.12</a>, <a href="#F.9.9">F.9.9</a> multiplication operator (*), <a href="#6.5.5">6.5.5</a>, <a href="#F.3">F.3</a>, <a href="#G.5.1">G.5.1</a>
-MB_CUR_MAX macro, <a href="#7.1.1">7.1.1</a>, <a href="#7.20">7.20</a>, <a href="#7.20.7.2">7.20.7.2</a>, multiplicative expressions, <a href="#6.5.5">6.5.5</a>, <a href="#G.5.1">G.5.1</a>
- <a href="#7.20.7.3">7.20.7.3</a>, <a href="#7.24.6.3.3">7.24.6.3.3</a>
-MB_LEN_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.1.1">7.1.1</a>, <a href="#7.20">7.20</a> n-char sequence, <a href="#7.20.1.3">7.20.1.3</a>
-mblen function, <a href="#7.20.7.1">7.20.7.1</a>, <a href="#7.24.6.3">7.24.6.3</a> n-wchar sequence, <a href="#7.24.4.1.1">7.24.4.1.1</a>
-mbrlen function, <a href="#7.24.6.3.1">7.24.6.3.1</a> name
-mbrtowc function, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, external, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.11.3">6.11.3</a>
- <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#7.24.6.3.1">7.24.6.3.1</a>, <a href="#7.24.6.3.2">7.24.6.3.2</a>, file, <a href="#7.19.3">7.19.3</a>
- <a href="#7.24.6.4.1">7.24.6.4.1</a> internal, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a>
-
-[<a name="p532" href="#p532">page 532</a>] (<a href="#Contents">Contents</a>)
-
- label, <a href="#6.2.3">6.2.3</a> octal-character escape sequence (\octal digits),
- structure/union member, <a href="#6.2.3">6.2.3</a> <a href="#6.4.4.4">6.4.4.4</a>
-name spaces, <a href="#6.2.3">6.2.3</a> offsetof macro, <a href="#7.17">7.17</a>
-named label, <a href="#6.8.1">6.8.1</a> on-off switch, <a href="#6.10.6">6.10.6</a>
-NaN, <a href="#5.2.4.2.2">5.2.4.2.2</a> ones' complement, <a href="#6.2.6.2">6.2.6.2</a>
-nan functions, <a href="#7.12.11.2">7.12.11.2</a>, <a href="#F.2.1">F.2.1</a>, <a href="#F.9.8.2">F.9.8.2</a> operand, <a href="#6.4.6">6.4.6</a>, <a href="#6.5">6.5</a>
-NAN macro, <a href="#7.12">7.12</a>, <a href="#F.2.1">F.2.1</a> operating system, <a href="#5.1.2.1">5.1.2.1</a>, <a href="#7.20.4.6">7.20.4.6</a>
-NDEBUG macro, <a href="#7.2">7.2</a> operations on files, <a href="#7.19.4">7.19.4</a>
-nearbyint functions, <a href="#7.12.9.3">7.12.9.3</a>, <a href="#7.12.9.4">7.12.9.4</a>, <a href="#F.3">F.3</a>, operator, <a href="#6.4.6">6.4.6</a>
- <a href="#F.9.6.3">F.9.6.3</a> operators, <a href="#6.5">6.5</a>
-nearbyint type-generic macro, <a href="#7.22">7.22</a> assignment, <a href="#6.5.16">6.5.16</a>
-nearest integer functions, <a href="#7.12.9">7.12.9</a>, <a href="#F.9.6">F.9.6</a> associativity, <a href="#6.5">6.5</a>
-negation operator (!), <a href="#6.5.3.3">6.5.3.3</a> equality, <a href="#6.5.9">6.5.9</a>
-negative zero, <a href="#6.2.6.2">6.2.6.2</a>, <a href="#7.12.11.1">7.12.11.1</a> multiplicative, <a href="#6.5.5">6.5.5</a>, <a href="#G.5.1">G.5.1</a>
-new-line character, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>, <a href="#6.10">6.10</a>, <a href="#6.10.4">6.10.4</a> postfix, <a href="#6.5.2">6.5.2</a>
-new-line escape sequence (\n), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>, precedence, <a href="#6.5">6.5</a>
- <a href="#7.4.1.10">7.4.1.10</a> preprocessing, <a href="#6.10.1">6.10.1</a>, <a href="#6.10.3.2">6.10.3.2</a>, <a href="#6.10.3.3">6.10.3.3</a>, <a href="#6.10.9">6.10.9</a>
-nextafter functions, <a href="#7.12.11.3">7.12.11.3</a>, <a href="#7.12.11.4">7.12.11.4</a>, <a href="#F.3">F.3</a>, relational, <a href="#6.5.8">6.5.8</a>
- <a href="#F.9.8.3">F.9.8.3</a> shift, <a href="#6.5.7">6.5.7</a>
-nextafter type-generic macro, <a href="#7.22">7.22</a> unary, <a href="#6.5.3">6.5.3</a>
-nexttoward functions, <a href="#7.12.11.4">7.12.11.4</a>, <a href="#F.3">F.3</a>, <a href="#F.9.8.4">F.9.8.4</a> unary arithmetic, <a href="#6.5.3.3">6.5.3.3</a>
-nexttoward type-generic macro, <a href="#7.22">7.22</a> or macro, <a href="#7.9">7.9</a>
-no linkage, <a href="#6.2.2">6.2.2</a> OR operators
-non-stop floating-point control mode, <a href="#7.6.4.2">7.6.4.2</a> bitwise exclusive (^), <a href="#6.5.11">6.5.11</a>
-nongraphic characters, <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a> bitwise exclusive assignment (^=), <a href="#6.5.16.2">6.5.16.2</a>
-nonlocal jumps header, <a href="#7.13">7.13</a> bitwise inclusive (|), <a href="#6.5.12">6.5.12</a>
-norm, complex, <a href="#7.3.8.1">7.3.8.1</a> bitwise inclusive assignment (|=), <a href="#6.5.16.2">6.5.16.2</a>
-not macro, <a href="#7.9">7.9</a> logical (||), <a href="#6.5.14">6.5.14</a>
-not-equal-to operator, see inequality operator or_eq macro, <a href="#7.9">7.9</a>
-not_eq macro, <a href="#7.9">7.9</a> order of allocated storage, <a href="#7.20.3">7.20.3</a>
-null character (\0), <a href="#5.2.1">5.2.1</a>, <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.4.5">6.4.5</a> order of evaluation, <a href="#6.5">6.5</a>
- padding of binary stream, <a href="#7.19.2">7.19.2</a> ordinary identifier name space, <a href="#6.2.3">6.2.3</a>
-NULL macro, <a href="#7.11">7.11</a>, <a href="#7.17">7.17</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.20">7.20</a>, <a href="#7.21.1">7.21.1</a>, orientation of stream, <a href="#7.19.2">7.19.2</a>, <a href="#7.24.3.5">7.24.3.5</a>
- <a href="#7.23.1">7.23.1</a>, <a href="#7.24.1">7.24.1</a> outer scope, <a href="#6.2.1">6.2.1</a>
-null pointer, <a href="#6.3.2.3">6.3.2.3</a>
-null pointer constant, <a href="#6.3.2.3">6.3.2.3</a> padding
-null preprocessing directive, <a href="#6.10.7">6.10.7</a> binary stream, <a href="#7.19.2">7.19.2</a>
-null statement, <a href="#6.8.3">6.8.3</a> bits, <a href="#6.2.6.2">6.2.6.2</a>, <a href="#7.18.1.1">7.18.1.1</a>
-null wide character, <a href="#7.1.1">7.1.1</a> structure/union, <a href="#6.2.6.1">6.2.6.1</a>, <a href="#6.7.2.1">6.7.2.1</a>
-number classification macros, <a href="#7.12">7.12</a>, <a href="#7.12.3.1">7.12.3.1</a> parameter, <a href="#3.15">3.15</a>
-numeric conversion functions, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.20.1">7.20.1</a> array, <a href="#6.9.1">6.9.1</a>
- wide string, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.24.4.1">7.24.4.1</a> ellipsis, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.10.3">6.10.3</a>
-numerical limits, <a href="#5.2.4.2">5.2.4.2</a> function, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.7">6.7</a>, <a href="#6.9.1">6.9.1</a>
- macro, <a href="#6.10.3">6.10.3</a>
-object, <a href="#3.14">3.14</a> main function, <a href="#5.1.2.2.1">5.1.2.2.1</a>
-object representation, <a href="#6.2.6.1">6.2.6.1</a> program, <a href="#5.1.2.2.1">5.1.2.2.1</a>
-object type, <a href="#6.2.5">6.2.5</a> parameter type list, <a href="#6.7.5.3">6.7.5.3</a>
-object-like macro, <a href="#6.10.3">6.10.3</a> parentheses punctuator (( )), <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.8.4">6.8.4</a>, <a href="#6.8.5">6.8.5</a>
-obsolescence, <a href="#6.11">6.11</a>, <a href="#7.26">7.26</a> parenthesized expression, <a href="#6.5.1">6.5.1</a>
-octal constant, <a href="#6.4.4.1">6.4.4.1</a> parse state, <a href="#7.19.2">7.19.2</a>
-octal digit, <a href="#6.4.4.1">6.4.4.1</a>, <a href="#6.4.4.4">6.4.4.4</a> permitted form of initializer, <a href="#6.6">6.6</a>
-
-[<a name="p533" href="#p533">page 533</a>] (<a href="#Contents">Contents</a>)
-
-perror function, <a href="#7.19.10.4">7.19.10.4</a> PRIcPTR macros, <a href="#7.8.1">7.8.1</a>
-phase angle, complex, <a href="#7.3.9.1">7.3.9.1</a> primary expression, <a href="#6.5.1">6.5.1</a>
-physical source lines, <a href="#5.1.1.2">5.1.1.2</a> printf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.3">7.19.6.3</a>, <a href="#7.19.6.10">7.19.6.10</a>
-placemarker, <a href="#6.10.3.3">6.10.3.3</a> printing character, <a href="#5.2.2">5.2.2</a>, <a href="#7.4">7.4</a>, <a href="#7.4.1.8">7.4.1.8</a>
-plus operator, unary, <a href="#6.5.3.3">6.5.3.3</a> printing wide character, <a href="#7.25.2">7.25.2</a>
-pointer arithmetic, <a href="#6.5.6">6.5.6</a> program diagnostics, <a href="#7.2.1">7.2.1</a>
-pointer comparison, <a href="#6.5.8">6.5.8</a> program execution, <a href="#5.1.2.2.2">5.1.2.2.2</a>, <a href="#5.1.2.3">5.1.2.3</a>
-pointer declarator, <a href="#6.7.5.1">6.7.5.1</a> program file, <a href="#5.1.1.1">5.1.1.1</a>
-pointer operator (->), <a href="#6.5.2.3">6.5.2.3</a> program image, <a href="#5.1.1.2">5.1.1.2</a>
-pointer to function, <a href="#6.5.2.2">6.5.2.2</a> program name (argv[0]), <a href="#5.1.2.2.1">5.1.2.2.1</a>
-pointer type, <a href="#6.2.5">6.2.5</a> program parameters, <a href="#5.1.2.2.1">5.1.2.2.1</a>
-pointer type conversion, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.3.2.3">6.3.2.3</a> program startup, <a href="#5.1.2">5.1.2</a>, <a href="#5.1.2.1">5.1.2.1</a>, <a href="#5.1.2.2.1">5.1.2.2.1</a>
-pointer, null, <a href="#6.3.2.3">6.3.2.3</a> program structure, <a href="#5.1.1.1">5.1.1.1</a>
-portability, <a href="#4">4</a>, <a href="#J">J</a> program termination, <a href="#5.1.2">5.1.2</a>, <a href="#5.1.2.1">5.1.2.1</a>, <a href="#5.1.2.2.3">5.1.2.2.3</a>,
-position indicator, file, see file position indicator <a href="#5.1.2.3">5.1.2.3</a>
-positive difference, <a href="#7.12.12.1">7.12.12.1</a> program, conforming, <a href="#4">4</a>
-positive difference functions, <a href="#7.12.12">7.12.12</a>, <a href="#F.9.9">F.9.9</a> program, strictly conforming, <a href="#4">4</a>
-postfix decrement operator (--), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.4">6.5.2.4</a> promotions
-postfix expressions, <a href="#6.5.2">6.5.2</a> default argument, <a href="#6.5.2.2">6.5.2.2</a>
-postfix increment operator (++), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.4">6.5.2.4</a> integer, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#6.3.1.1">6.3.1.1</a>
-pow functions, <a href="#7.12.7.4">7.12.7.4</a>, <a href="#F.9.4.4">F.9.4.4</a> prototype, see function prototype
-pow type-generic macro, <a href="#7.22">7.22</a> pseudo-random sequence functions, <a href="#7.20.2">7.20.2</a>
-power functions PTRDIFF_MAX macro, <a href="#7.18.3">7.18.3</a>
- complex, <a href="#7.3.8">7.3.8</a>, <a href="#G.6.4">G.6.4</a> PTRDIFF_MIN macro, <a href="#7.18.3">7.18.3</a>
- real, <a href="#7.12.7">7.12.7</a>, <a href="#F.9.4">F.9.4</a> ptrdiff_t type, <a href="#7.17">7.17</a>, <a href="#7.18.3">7.18.3</a>, <a href="#7.19.6.1">7.19.6.1</a>,
-pp-number, <a href="#6.4.8">6.4.8</a> <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>
-pragma operator, <a href="#6.10.9">6.10.9</a> punctuators, <a href="#6.4.6">6.4.6</a>
-pragma preprocessing directive, <a href="#6.10.6">6.10.6</a>, <a href="#6.11.8">6.11.8</a> putc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.8">7.19.7.8</a>, <a href="#7.19.7.9">7.19.7.9</a>
-precedence of operators, <a href="#6.5">6.5</a> putchar function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.9">7.19.7.9</a>
-precedence of syntax rules, <a href="#5.1.1.2">5.1.1.2</a> puts function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.10">7.19.7.10</a>
-precision, <a href="#6.2.6.2">6.2.6.2</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a> putwc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.8">7.24.3.8</a>, <a href="#7.24.3.9">7.24.3.9</a>
- excess, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.8">6.3.1.8</a>, <a href="#6.8.6.4">6.8.6.4</a> putwchar function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.9">7.24.3.9</a>
-predefined macro names, <a href="#6.10.8">6.10.8</a>, <a href="#6.11.9">6.11.9</a>
-prefix decrement operator (--), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.1">6.5.3.1</a> qsort function, <a href="#7.20.5">7.20.5</a>, <a href="#7.20.5.2">7.20.5.2</a>
-prefix increment operator (++), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.1">6.5.3.1</a> qualified types, <a href="#6.2.5">6.2.5</a>
-preprocessing concatenation, <a href="#6.10.3.3">6.10.3.3</a> qualified version of type, <a href="#6.2.5">6.2.5</a>
-preprocessing directives, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.10">6.10</a> question-mark escape sequence (\?), <a href="#6.4.4.4">6.4.4.4</a>
-preprocessing file, <a href="#5.1.1.1">5.1.1.1</a>, <a href="#6.10">6.10</a> quiet NaN, <a href="#5.2.4.2.2">5.2.4.2.2</a>
-preprocessing numbers, <a href="#6.4">6.4</a>, <a href="#6.4.8">6.4.8</a>
-preprocessing operators raise function, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.14.2.1">7.14.2.1</a>, <a href="#7.20.4.1">7.20.4.1</a>
- #, <a href="#6.10.3.2">6.10.3.2</a> rand function, <a href="#7.20">7.20</a>, <a href="#7.20.2.1">7.20.2.1</a>, <a href="#7.20.2.2">7.20.2.2</a>
- ##, <a href="#6.10.3.3">6.10.3.3</a> RAND_MAX macro, <a href="#7.20">7.20</a>, <a href="#7.20.2.1">7.20.2.1</a>
- _Pragma, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.10.9">6.10.9</a> range
- defined, <a href="#6.10.1">6.10.1</a> excess, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.8">6.3.1.8</a>, <a href="#6.8.6.4">6.8.6.4</a>
-preprocessing tokens, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.4">6.4</a>, <a href="#6.10">6.10</a> range error, <a href="#7.12.1">7.12.1</a>, <a href="#7.12.5.3">7.12.5.3</a>, <a href="#7.12.5.4">7.12.5.4</a>, <a href="#7.12.5.5">7.12.5.5</a>,
-preprocessing translation unit, <a href="#5.1.1.1">5.1.1.1</a> <a href="#7.12.6.1">7.12.6.1</a>, <a href="#7.12.6.2">7.12.6.2</a>, <a href="#7.12.6.3">7.12.6.3</a>, <a href="#7.12.6.5">7.12.6.5</a>,
-preprocessor, <a href="#6.10">6.10</a> <a href="#7.12.6.6">7.12.6.6</a>, <a href="#7.12.6.7">7.12.6.7</a>, <a href="#7.12.6.8">7.12.6.8</a>, <a href="#7.12.6.9">7.12.6.9</a>,
-PRIcFASTN macros, <a href="#7.8.1">7.8.1</a> <a href="#7.12.6.10">7.12.6.10</a>, <a href="#7.12.6.11">7.12.6.11</a>, <a href="#7.12.6.13">7.12.6.13</a>, <a href="#7.12.7.3">7.12.7.3</a>,
-PRIcLEASTN macros, <a href="#7.8.1">7.8.1</a> <a href="#7.12.7.4">7.12.7.4</a>, <a href="#7.12.8.2">7.12.8.2</a>, <a href="#7.12.8.3">7.12.8.3</a>, <a href="#7.12.8.4">7.12.8.4</a>,
-PRIcMAX macros, <a href="#7.8.1">7.8.1</a> <a href="#7.12.9.5">7.12.9.5</a>, <a href="#7.12.9.7">7.12.9.7</a>, <a href="#7.12.11.3">7.12.11.3</a>, <a href="#7.12.12.1">7.12.12.1</a>,
-PRIcN macros, <a href="#7.8.1">7.8.1</a> <a href="#7.12.13.1">7.12.13.1</a>
-
-[<a name="p534" href="#p534">page 534</a>] (<a href="#Contents">Contents</a>)
-
-rank, see integer conversion rank same scope, <a href="#6.2.1">6.2.1</a>
-real floating type conversion, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.5">6.3.1.5</a>, save calling environment function, <a href="#7.13.1">7.13.1</a>
- <a href="#6.3.1.7">6.3.1.7</a>, <a href="#F.3">F.3</a>, <a href="#F.4">F.4</a> scalar types, <a href="#6.2.5">6.2.5</a>
-real floating types, <a href="#6.2.5">6.2.5</a> scalbln function, <a href="#7.12.6.13">7.12.6.13</a>, <a href="#F.3">F.3</a>, <a href="#F.9.3.13">F.9.3.13</a>
-real type domain, <a href="#6.2.5">6.2.5</a> scalbln type-generic macro, <a href="#7.22">7.22</a>
-real types, <a href="#6.2.5">6.2.5</a> scalbn function, <a href="#7.12.6.13">7.12.6.13</a>, <a href="#F.3">F.3</a>, <a href="#F.9.3.13">F.9.3.13</a>
-real-floating, <a href="#7.12.3">7.12.3</a> scalbn type-generic macro, <a href="#7.22">7.22</a>
-realloc function, <a href="#7.20.3">7.20.3</a>, <a href="#7.20.3.2">7.20.3.2</a>, <a href="#7.20.3.4">7.20.3.4</a> scanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.4">7.19.6.4</a>, <a href="#7.19.6.11">7.19.6.11</a>
-recommended practice, <a href="#3.16">3.16</a> scanlist, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>
-recursion, <a href="#6.5.2.2">6.5.2.2</a> scanset, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>
-recursive function call, <a href="#6.5.2.2">6.5.2.2</a> SCHAR_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
-redefinition of macro, <a href="#6.10.3">6.10.3</a> SCHAR_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
-reentrancy, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.3">5.2.3</a> SCNcFASTN macros, <a href="#7.8.1">7.8.1</a>
- library functions, <a href="#7.1.4">7.1.4</a> SCNcLEASTN macros, <a href="#7.8.1">7.8.1</a>
-referenced type, <a href="#6.2.5">6.2.5</a> SCNcMAX macros, <a href="#7.8.1">7.8.1</a>
-register storage-class specifier, <a href="#6.7.1">6.7.1</a>, <a href="#6.9">6.9</a> SCNcN macros, <a href="#7.8.1">7.8.1</a>
-relational expressions, <a href="#6.5.8">6.5.8</a> SCNcPTR macros, <a href="#7.8.1">7.8.1</a>
-reliability of data, interrupted, <a href="#5.1.2.3">5.1.2.3</a> scope of identifier, <a href="#6.2.1">6.2.1</a>, <a href="#6.9.2">6.9.2</a>
-remainder assignment operator (%=), <a href="#6.5.16.2">6.5.16.2</a> search functions
-remainder functions, <a href="#7.12.10">7.12.10</a>, <a href="#F.9.7">F.9.7</a> string, <a href="#7.21.5">7.21.5</a>
-remainder functions, <a href="#7.12.10.2">7.12.10.2</a>, <a href="#7.12.10.3">7.12.10.3</a>, <a href="#F.3">F.3</a>, utility, <a href="#7.20.5">7.20.5</a>
- <a href="#F.9.7.2">F.9.7.2</a> wide string, <a href="#7.24.4.5">7.24.4.5</a>
-remainder operator (%), <a href="#6.5.5">6.5.5</a> SEEK_CUR macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.9.2">7.19.9.2</a>
-remainder type-generic macro, <a href="#7.22">7.22</a> SEEK_END macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.9.2">7.19.9.2</a>
-remove function, <a href="#7.19.4.1">7.19.4.1</a>, <a href="#7.19.4.4">7.19.4.4</a> SEEK_SET macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.9.2">7.19.9.2</a>
-remquo functions, <a href="#7.12.10.3">7.12.10.3</a>, <a href="#F.3">F.3</a>, <a href="#F.9.7.3">F.9.7.3</a> selection statements, <a href="#6.8.4">6.8.4</a>
-remquo type-generic macro, <a href="#7.22">7.22</a> self-referential structure, <a href="#6.7.2.3">6.7.2.3</a>
-rename function, <a href="#7.19.4.2">7.19.4.2</a> semicolon punctuator (;), <a href="#6.7">6.7</a>, <a href="#6.7.2.1">6.7.2.1</a>, <a href="#6.8.3">6.8.3</a>,
-representations of types, <a href="#6.2.6">6.2.6</a> <a href="#6.8.5">6.8.5</a>, <a href="#6.8.6">6.8.6</a>
- pointer, <a href="#6.2.5">6.2.5</a> separate compilation, <a href="#5.1.1.1">5.1.1.1</a>
-rescanning and replacement, <a href="#6.10.3.4">6.10.3.4</a> separate translation, <a href="#5.1.1.1">5.1.1.1</a>
-reserved identifiers, <a href="#6.4.1">6.4.1</a>, <a href="#7.1.3">7.1.3</a> sequence points, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#6.5">6.5</a>, <a href="#6.8">6.8</a>, <a href="#7.1.4">7.1.4</a>, <a href="#7.19.6">7.19.6</a>,
-restartable multibyte/wide character conversion <a href="#7.20.5">7.20.5</a>, <a href="#7.24.2">7.24.2</a>, <a href="#C">C</a>
- functions, <a href="#7.24.6.3">7.24.6.3</a> sequencing of statements, <a href="#6.8">6.8</a>
-restartable multibyte/wide string conversion setbuf function, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.5.1">7.19.5.1</a>, <a href="#7.19.5.5">7.19.5.5</a>
- functions, <a href="#7.24.6.4">7.24.6.4</a> setjmp macro, <a href="#7.1.3">7.1.3</a>, <a href="#7.13.1.1">7.13.1.1</a>, <a href="#7.13.2.1">7.13.2.1</a>
-restore calling environment function, <a href="#7.13.2">7.13.2</a> setjmp.h header, <a href="#7.13">7.13</a>
-restrict type qualifier, <a href="#6.7.3">6.7.3</a>, <a href="#6.7.3.1">6.7.3.1</a> setlocale function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
-restrict-qualified type, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.3">6.7.3</a> setvbuf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.5.1">7.19.5.1</a>,
-return statement, <a href="#6.8.6.4">6.8.6.4</a> <a href="#7.19.5.5">7.19.5.5</a>, <a href="#7.19.5.6">7.19.5.6</a>
-rewind function, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.19.9.5">7.19.9.5</a>, shall, <a href="#4">4</a>
- <a href="#7.24.3.10">7.24.3.10</a> shift expressions, <a href="#6.5.7">6.5.7</a>
-right-shift assignment operator (>>=), <a href="#6.5.16.2">6.5.16.2</a> shift sequence, <a href="#7.1.1">7.1.1</a>
-right-shift operator (>>), <a href="#6.5.7">6.5.7</a> shift states, <a href="#5.2.1.2">5.2.1.2</a>
-rint functions, <a href="#7.12.9.4">7.12.9.4</a>, <a href="#F.3">F.3</a>, <a href="#F.9.6.4">F.9.6.4</a> short identifier, character, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.3">6.4.3</a>
-rint type-generic macro, <a href="#7.22">7.22</a> short int type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.7.2">6.7.2</a>, <a href="#7.19.6.1">7.19.6.1</a>,
-round functions, <a href="#7.12.9.6">7.12.9.6</a>, <a href="#F.9.6.6">F.9.6.6</a> <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>
-round type-generic macro, <a href="#7.22">7.22</a> short int type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>,
-rounding mode, floating point, <a href="#5.2.4.2.2">5.2.4.2.2</a> <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.8">6.3.1.8</a>
-rvalue, <a href="#6.3.2.1">6.3.2.1</a> SHRT_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
- SHRT_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
-
-[<a name="p535" href="#p535">page 535</a>] (<a href="#Contents">Contents</a>)
-
-side effects, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#6.5">6.5</a> source lines, <a href="#5.1.1.2">5.1.1.2</a>
-SIG_ATOMIC_MAX macro, <a href="#7.18.3">7.18.3</a> source text, <a href="#5.1.1.2">5.1.1.2</a>
-SIG_ATOMIC_MIN macro, <a href="#7.18.3">7.18.3</a> space character (' '), <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>, <a href="#7.4.1.3">7.4.1.3</a>,
-sig_atomic_t type, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.18.3">7.18.3</a> <a href="#7.4.1.10">7.4.1.10</a>, <a href="#7.25.2.1.3">7.25.2.1.3</a>
-SIG_DFL macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a> sprintf function, <a href="#7.19.6.6">7.19.6.6</a>, <a href="#7.19.6.13">7.19.6.13</a>
-SIG_ERR macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a> sqrt functions, <a href="#7.12.7.5">7.12.7.5</a>, <a href="#F.3">F.3</a>, <a href="#F.9.4.5">F.9.4.5</a>
-SIG_IGN macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a> sqrt type-generic macro, <a href="#7.22">7.22</a>
-SIGABRT macro, <a href="#7.14">7.14</a>, <a href="#7.20.4.1">7.20.4.1</a> srand function, <a href="#7.20.2.2">7.20.2.2</a>
-SIGFPE macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#J.5.17">J.5.17</a> sscanf function, <a href="#7.19.6.7">7.19.6.7</a>, <a href="#7.19.6.14">7.19.6.14</a>
-SIGILL macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a> standard error stream, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.10.4">7.19.10.4</a>
-SIGINT macro, <a href="#7.14">7.14</a> standard headers, <a href="#4">4</a>, <a href="#7.1.2">7.1.2</a>
-sign and magnitude, <a href="#6.2.6.2">6.2.6.2</a> <a href="#7.2"><assert.h></a>, <a href="#7.2">7.2</a>, <a href="#B.1">B.1</a>
-sign bit, <a href="#6.2.6.2">6.2.6.2</a> <a href="#7.3"><complex.h></a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.3">7.3</a>, <a href="#7.22">7.22</a>, <a href="#7.26.1">7.26.1</a>,
-signal function, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.20.4.4">7.20.4.4</a> <a href="#G.6">G.6</a>, <a href="#J.5.17">J.5.17</a>
-signal handler, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.3">5.2.3</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.14.2.1">7.14.2.1</a> <a href="#7.4"><ctype.h></a>, <a href="#7.4">7.4</a>, <a href="#7.26.2">7.26.2</a>
-signal handling functions, <a href="#7.14.1">7.14.1</a> <a href="#7.5"><errno.h></a>, <a href="#7.5">7.5</a>, <a href="#7.26.3">7.26.3</a>
-signal.h header, <a href="#7.14">7.14</a>, <a href="#7.26.6">7.26.6</a> <a href="#7.6"><fenv.h></a>, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F">F</a>, <a href="#H">H</a>
-signaling NaN, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#F.2.1">F.2.1</a> <a href="#7.7"><float.h></a>, <a href="#4">4</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.7">7.7</a>, <a href="#7.20.1.3">7.20.1.3</a>,
-signals, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.3">5.2.3</a>, <a href="#7.14.1">7.14.1</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>
-signbit macro, <a href="#7.12.3.6">7.12.3.6</a>, <a href="#F.3">F.3</a> <a href="#7.8"><inttypes.h></a>, <a href="#7.8">7.8</a>, <a href="#7.26.4">7.26.4</a>
-signed char type, <a href="#6.2.5">6.2.5</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.9"><iso646.h></a>, <a href="#4">4</a>, <a href="#7.9">7.9</a>
- <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> <a href="#7.10"><limits.h></a>, <a href="#4">4</a>, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#6.2.5">6.2.5</a>, <a href="#7.10">7.10</a>
-signed character, <a href="#6.3.1.1">6.3.1.1</a> <a href="#7.11"><locale.h></a>, <a href="#7.11">7.11</a>, <a href="#7.26.5">7.26.5</a>
-signed integer types, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.4.4.1">6.4.4.1</a> <a href="#7.12"><math.h></a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.5">6.5</a>, <a href="#7.12">7.12</a>, <a href="#7.22">7.22</a>, <a href="#F">F</a>, <a href="#F.9">F.9</a>,
-signed type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#J.5.17">J.5.17</a>
- <a href="#6.3.1.8">6.3.1.8</a> <a href="#7.13"><setjmp.h></a>, <a href="#7.13">7.13</a>
-signed types, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2">6.7.2</a> <a href="#7.14"><signal.h></a>, <a href="#7.14">7.14</a>, <a href="#7.26.6">7.26.6</a>
-significand part, <a href="#6.4.4.2">6.4.4.2</a> <a href="#7.15"><stdarg.h></a>, <a href="#4">4</a>, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#7.15">7.15</a>
-SIGSEGV macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a> <a href="#7.16"><stdbool.h></a>, <a href="#4">4</a>, <a href="#7.16">7.16</a>, <a href="#7.26.7">7.26.7</a>, <a href="#H">H</a>
-SIGTERM macro, <a href="#7.14">7.14</a> <a href="#7.17"><stddef.h></a>, <a href="#4">4</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.3.2.3">6.3.2.3</a>, <a href="#6.4.4.4">6.4.4.4</a>,
-simple assignment operator (=), <a href="#6.5.16.1">6.5.16.1</a> <a href="#6.4.5">6.4.5</a>, <a href="#6.5.3.4">6.5.3.4</a>, <a href="#6.5.6">6.5.6</a>, <a href="#7.17">7.17</a>
-sin functions, <a href="#7.12.4.6">7.12.4.6</a>, <a href="#F.9.1.6">F.9.1.6</a> <a href="#7.18"><stdint.h></a>, <a href="#4">4</a>, <a href="#5.2.4.2">5.2.4.2</a>, <a href="#6.10.1">6.10.1</a>, <a href="#7.8">7.8</a>, <a href="#7.18">7.18</a>,
-sin type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> <a href="#7.26.8">7.26.8</a>
-single-byte character, <a href="#3.7.1">3.7.1</a>, <a href="#5.2.1.2">5.2.1.2</a> <a href="#7.19"><stdio.h></a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19">7.19</a>, <a href="#7.26.9">7.26.9</a>, <a href="#F">F</a>
-single-byte/wide character conversion functions, <a href="#7.20"><stdlib.h></a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.20">7.20</a>, <a href="#7.26.10">7.26.10</a>, <a href="#F">F</a>
- <a href="#7.24.6.1">7.24.6.1</a> <a href="#7.21"><string.h></a>, <a href="#7.21">7.21</a>, <a href="#7.26.11">7.26.11</a>
-single-precision arithmetic, <a href="#5.1.2.3">5.1.2.3</a> <a href="#7.22"><tgmath.h></a>, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
-single-quote escape sequence (\'), <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.4.5">6.4.5</a> <a href="#7.23"><time.h></a>, <a href="#7.23">7.23</a>
-sinh functions, <a href="#7.12.5.5">7.12.5.5</a>, <a href="#F.9.2.5">F.9.2.5</a> <a href="#7.24"><wchar.h></a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.24">7.24</a>, <a href="#7.26.12">7.26.12</a>,
-sinh type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> <a href="#F">F</a>
-SIZE_MAX macro, <a href="#7.18.3">7.18.3</a> <a href="#7.25"><wctype.h></a>, <a href="#7.25">7.25</a>, <a href="#7.26.13">7.26.13</a>
-size_t type, <a href="#6.5.3.4">6.5.3.4</a>, <a href="#7.17">7.17</a>, <a href="#7.18.3">7.18.3</a>, <a href="#7.19.1">7.19.1</a>, standard input stream, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>
- <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20">7.20</a>, <a href="#7.21.1">7.21.1</a>, <a href="#7.23.1">7.23.1</a>, standard integer types, <a href="#6.2.5">6.2.5</a>
- <a href="#7.24.1">7.24.1</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> standard output stream, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>
-sizeof operator, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3">6.5.3</a>, <a href="#6.5.3.4">6.5.3.4</a> standard signed integer types, <a href="#6.2.5">6.2.5</a>
-snprintf function, <a href="#7.19.6.5">7.19.6.5</a>, <a href="#7.19.6.12">7.19.6.12</a> state-dependent encoding, <a href="#5.2.1.2">5.2.1.2</a>, <a href="#7.20.7">7.20.7</a>
-sorting utility functions, <a href="#7.20.5">7.20.5</a> statements, <a href="#6.8">6.8</a>
-source character set, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a> break, <a href="#6.8.6.3">6.8.6.3</a>
-source file, <a href="#5.1.1.1">5.1.1.1</a> compound, <a href="#6.8.2">6.8.2</a>
- name, <a href="#6.10.4">6.10.4</a>, <a href="#6.10.8">6.10.8</a> continue, <a href="#6.8.6.2">6.8.6.2</a>
-source file inclusion, <a href="#6.10.2">6.10.2</a> do, <a href="#6.8.5.2">6.8.5.2</a>
-
-[<a name="p536" href="#p536">page 536</a>] (<a href="#Contents">Contents</a>)
-
- else, <a href="#6.8.4.1">6.8.4.1</a> strictly conforming program, <a href="#4">4</a>
- expression, <a href="#6.8.3">6.8.3</a> string, <a href="#7.1.1">7.1.1</a>
- for, <a href="#6.8.5.3">6.8.5.3</a> comparison functions, <a href="#7.21.4">7.21.4</a>
- goto, <a href="#6.8.6.1">6.8.6.1</a> concatenation functions, <a href="#7.21.3">7.21.3</a>
- if, <a href="#6.8.4.1">6.8.4.1</a> conversion functions, <a href="#7.11.1.1">7.11.1.1</a>
- iteration, <a href="#6.8.5">6.8.5</a> copying functions, <a href="#7.21.2">7.21.2</a>
- jump, <a href="#6.8.6">6.8.6</a> library function conventions, <a href="#7.21.1">7.21.1</a>
- labeled, <a href="#6.8.1">6.8.1</a> literal, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.4.5">6.4.5</a>, <a href="#6.5.1">6.5.1</a>, <a href="#6.7.8">6.7.8</a>
- null, <a href="#6.8.3">6.8.3</a> miscellaneous functions, <a href="#7.21.6">7.21.6</a>
- return, <a href="#6.8.6.4">6.8.6.4</a> numeric conversion functions, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.20.1">7.20.1</a>
- selection, <a href="#6.8.4">6.8.4</a> search functions, <a href="#7.21.5">7.21.5</a>
- sequencing, <a href="#6.8">6.8</a> string handling header, <a href="#7.21">7.21</a>
- switch, <a href="#6.8.4.2">6.8.4.2</a> string.h header, <a href="#7.21">7.21</a>, <a href="#7.26.11">7.26.11</a>
- while, <a href="#6.8.5.1">6.8.5.1</a> stringizing, <a href="#6.10.3.2">6.10.3.2</a>, <a href="#6.10.9">6.10.9</a>
-static storage duration, <a href="#6.2.4">6.2.4</a> strlen function, <a href="#7.21.6.3">7.21.6.3</a>
-static storage-class specifier, <a href="#6.2.2">6.2.2</a>, <a href="#6.2.4">6.2.4</a>, <a href="#6.7.1">6.7.1</a> strncat function, <a href="#7.21.3.2">7.21.3.2</a>
-static, in array declarators, <a href="#6.7.5.2">6.7.5.2</a>, <a href="#6.7.5.3">6.7.5.3</a> strncmp function, <a href="#7.21.4">7.21.4</a>, <a href="#7.21.4.4">7.21.4.4</a>
-stdarg.h header, <a href="#4">4</a>, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#7.15">7.15</a> strncpy function, <a href="#7.21.2.4">7.21.2.4</a>
-stdbool.h header, <a href="#4">4</a>, <a href="#7.16">7.16</a>, <a href="#7.26.7">7.26.7</a>, <a href="#H">H</a> strpbrk function, <a href="#7.21.5.4">7.21.5.4</a>
-STDC, <a href="#6.10.6">6.10.6</a>, <a href="#6.11.8">6.11.8</a> strrchr function, <a href="#7.21.5.5">7.21.5.5</a>
-stddef.h header, <a href="#4">4</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.3.2.3">6.3.2.3</a>, <a href="#6.4.4.4">6.4.4.4</a>, strspn function, <a href="#7.21.5.6">7.21.5.6</a>
- <a href="#6.4.5">6.4.5</a>, <a href="#6.5.3.4">6.5.3.4</a>, <a href="#6.5.6">6.5.6</a>, <a href="#7.17">7.17</a> strstr function, <a href="#7.21.5.7">7.21.5.7</a>
-stderr macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.3">7.19.3</a> strtod function, <a href="#7.12.11.2">7.12.11.2</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20.1.3">7.20.1.3</a>,
-stdin macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.6.4">7.19.6.4</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#F.3">F.3</a>
- <a href="#7.19.7.6">7.19.7.6</a>, <a href="#7.19.7.7">7.19.7.7</a>, <a href="#7.24.2.12">7.24.2.12</a>, <a href="#7.24.3.7">7.24.3.7</a> strtof function, <a href="#7.12.11.2">7.12.11.2</a>, <a href="#7.20.1.3">7.20.1.3</a>, <a href="#F.3">F.3</a>
-stdint.h header, <a href="#4">4</a>, <a href="#5.2.4.2">5.2.4.2</a>, <a href="#6.10.1">6.10.1</a>, <a href="#7.8">7.8</a>, <a href="#7.18">7.18</a>, strtoimax function, <a href="#7.8.2.3">7.8.2.3</a>
- <a href="#7.26.8">7.26.8</a> strtok function, <a href="#7.21.5.8">7.21.5.8</a>
-stdio.h header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19">7.19</a>, <a href="#7.26.9">7.26.9</a>, <a href="#F">F</a> strtol function, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20.1.2">7.20.1.2</a>,
-stdlib.h header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.20">7.20</a>, <a href="#7.26.10">7.26.10</a>, <a href="#F">F</a> <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.2.2">7.24.2.2</a>
-stdout macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.6.3">7.19.6.3</a>, strtold function, <a href="#7.12.11.2">7.12.11.2</a>, <a href="#7.20.1.3">7.20.1.3</a>, <a href="#F.3">F.3</a>
- <a href="#7.19.7.9">7.19.7.9</a>, <a href="#7.19.7.10">7.19.7.10</a>, <a href="#7.24.2.11">7.24.2.11</a>, <a href="#7.24.3.9">7.24.3.9</a> strtoll function, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.20.1.2">7.20.1.2</a>, <a href="#7.20.1.4">7.20.1.4</a>
-storage duration, <a href="#6.2.4">6.2.4</a> strtoul function, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20.1.2">7.20.1.2</a>,
-storage order of array, <a href="#6.5.2.1">6.5.2.1</a> <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.2.2">7.24.2.2</a>
-storage-class specifiers, <a href="#6.7.1">6.7.1</a>, <a href="#6.11.5">6.11.5</a> strtoull function, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.20.1.2">7.20.1.2</a>, <a href="#7.20.1.4">7.20.1.4</a>
-strcat function, <a href="#7.21.3.1">7.21.3.1</a> strtoumax function, <a href="#7.8.2.3">7.8.2.3</a>
-strchr function, <a href="#7.21.5.2">7.21.5.2</a> struct hack, see flexible array member
-strcmp function, <a href="#7.21.4">7.21.4</a>, <a href="#7.21.4.2">7.21.4.2</a> structure
-strcoll function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.21.4.3">7.21.4.3</a>, <a href="#7.21.4.5">7.21.4.5</a> arrow operator (->), <a href="#6.5.2.3">6.5.2.3</a>
-strcpy function, <a href="#7.21.2.3">7.21.2.3</a> content, <a href="#6.7.2.3">6.7.2.3</a>
-strcspn function, <a href="#7.21.5.3">7.21.5.3</a> dot operator (.), <a href="#6.5.2.3">6.5.2.3</a>
-streams, <a href="#7.19.2">7.19.2</a>, <a href="#7.20.4.3">7.20.4.3</a> initialization, <a href="#6.7.8">6.7.8</a>
- fully buffered, <a href="#7.19.3">7.19.3</a> member alignment, <a href="#6.7.2.1">6.7.2.1</a>
- line buffered, <a href="#7.19.3">7.19.3</a> member name space, <a href="#6.2.3">6.2.3</a>
- orientation, <a href="#7.19.2">7.19.2</a> member operator (.), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.3">6.5.2.3</a>
- standard error, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a> pointer operator (->), <a href="#6.5.2.3">6.5.2.3</a>
- standard input, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a> specifier, <a href="#6.7.2.1">6.7.2.1</a>
- standard output, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a> tag, <a href="#6.2.3">6.2.3</a>, <a href="#6.7.2.3">6.7.2.3</a>
- unbuffered, <a href="#7.19.3">7.19.3</a> type, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2.1">6.7.2.1</a>
-strerror function, <a href="#7.19.10.4">7.19.10.4</a>, <a href="#7.21.6.2">7.21.6.2</a> strxfrm function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.21.4.5">7.21.4.5</a>
-strftime function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.23.3">7.23.3</a>, <a href="#7.23.3.5">7.23.3.5</a>, subscripting, <a href="#6.5.2.1">6.5.2.1</a>
- <a href="#7.24.5.1">7.24.5.1</a> subtraction assignment operator (-=), <a href="#6.5.16.2">6.5.16.2</a>
-
-[<a name="p537" href="#p537">page 537</a>] (<a href="#Contents">Contents</a>)
-
-subtraction operator (-), <a href="#6.5.6">6.5.6</a>, <a href="#F.3">F.3</a>, <a href="#G.5.2">G.5.2</a> tolower function, <a href="#7.4.2.1">7.4.2.1</a>
-suffix toupper function, <a href="#7.4.2.2">7.4.2.2</a>
- floating constant, <a href="#6.4.4.2">6.4.4.2</a> towctrans function, <a href="#7.25.3.2.1">7.25.3.2.1</a>, <a href="#7.25.3.2.2">7.25.3.2.2</a>
- integer constant, <a href="#6.4.4.1">6.4.4.1</a> towlower function, <a href="#7.25.3.1.1">7.25.3.1.1</a>, <a href="#7.25.3.2.1">7.25.3.2.1</a>
-switch body, <a href="#6.8.4.2">6.8.4.2</a> towupper function, <a href="#7.25.3.1.2">7.25.3.1.2</a>, <a href="#7.25.3.2.1">7.25.3.2.1</a>
-switch case label, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.4.2">6.8.4.2</a> translation environment, <a href="#5">5</a>, <a href="#5.1.1">5.1.1</a>
-switch default label, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.4.2">6.8.4.2</a> translation limits, <a href="#5.2.4.1">5.2.4.1</a>
-switch statement, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.4.2">6.8.4.2</a> translation phases, <a href="#5.1.1.2">5.1.1.2</a>
-swprintf function, <a href="#7.24.2.3">7.24.2.3</a>, <a href="#7.24.2.7">7.24.2.7</a> translation unit, <a href="#5.1.1.1">5.1.1.1</a>, <a href="#6.9">6.9</a>
-swscanf function, <a href="#7.24.2.4">7.24.2.4</a>, <a href="#7.24.2.8">7.24.2.8</a> trap representation, <a href="#6.2.6.1">6.2.6.1</a>, <a href="#6.2.6.2">6.2.6.2</a>, <a href="#6.3.2.3">6.3.2.3</a>,
-symbols, <a href="#3">3</a> <a href="#6.5.2.3">6.5.2.3</a>
-syntactic categories, <a href="#6.1">6.1</a> trigonometric functions
-syntax notation, <a href="#6.1">6.1</a> complex, <a href="#7.3.5">7.3.5</a>, <a href="#G.6.1">G.6.1</a>
-syntax rule precedence, <a href="#5.1.1.2">5.1.1.2</a> real, <a href="#7.12.4">7.12.4</a>, <a href="#F.9.1">F.9.1</a>
-syntax summary, language, <a href="#A">A</a> trigraph sequences, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1.1">5.2.1.1</a>
-system function, <a href="#7.20.4.6">7.20.4.6</a> true macro, <a href="#7.16">7.16</a>
- trunc functions, <a href="#7.12.9.8">7.12.9.8</a>, <a href="#F.9.6.8">F.9.6.8</a>
-tab characters, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a> trunc type-generic macro, <a href="#7.22">7.22</a>
-tag compatibility, <a href="#6.2.7">6.2.7</a> truncation, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#7.12.9.8">7.12.9.8</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.5.3">7.19.5.3</a>
-tag name space, <a href="#6.2.3">6.2.3</a> truncation toward zero, <a href="#6.5.5">6.5.5</a>
-tags, <a href="#6.7.2.3">6.7.2.3</a> two's complement, <a href="#6.2.6.2">6.2.6.2</a>, <a href="#7.18.1.1">7.18.1.1</a>
-tan functions, <a href="#7.12.4.7">7.12.4.7</a>, <a href="#F.9.1.7">F.9.1.7</a> type category, <a href="#6.2.5">6.2.5</a>
-tan type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> type conversion, <a href="#6.3">6.3</a>
-tanh functions, <a href="#7.12.5.6">7.12.5.6</a>, <a href="#F.9.2.6">F.9.2.6</a> type definitions, <a href="#6.7.7">6.7.7</a>
-tanh type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> type domain, <a href="#6.2.5">6.2.5</a>, <a href="#G.2">G.2</a>
-tentative definition, <a href="#6.9.2">6.9.2</a> type names, <a href="#6.7.6">6.7.6</a>
-terms, <a href="#3">3</a> type punning, <a href="#6.5.2.3">6.5.2.3</a>
-text streams, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.19.9.2">7.19.9.2</a>, <a href="#7.19.9.4">7.19.9.4</a> type qualifiers, <a href="#6.7.3">6.7.3</a>
-tgamma functions, <a href="#7.12.8.4">7.12.8.4</a>, <a href="#F.9.5.4">F.9.5.4</a> type specifiers, <a href="#6.7.2">6.7.2</a>
-tgamma type-generic macro, <a href="#7.22">7.22</a> type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
-tgmath.h header, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> typedef declaration, <a href="#6.7.7">6.7.7</a>
-time typedef storage-class specifier, <a href="#6.7.1">6.7.1</a>, <a href="#6.7.7">6.7.7</a>
- broken down, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.3">7.23.2.3</a>, <a href="#7.23.3">7.23.3</a>, <a href="#7.23.3.1">7.23.3.1</a>, types, <a href="#6.2.5">6.2.5</a>
- <a href="#7.23.3.3">7.23.3.3</a>, <a href="#7.23.3.4">7.23.3.4</a>, <a href="#7.23.3.5">7.23.3.5</a> character, <a href="#6.7.8">6.7.8</a>
- calendar, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.2">7.23.2.2</a>, <a href="#7.23.2.3">7.23.2.3</a>, <a href="#7.23.2.4">7.23.2.4</a>, compatible, <a href="#6.2.7">6.2.7</a>, <a href="#6.7.2">6.7.2</a>, <a href="#6.7.3">6.7.3</a>, <a href="#6.7.5">6.7.5</a>
- <a href="#7.23.3.2">7.23.3.2</a>, <a href="#7.23.3.3">7.23.3.3</a>, <a href="#7.23.3.4">7.23.3.4</a> complex, <a href="#6.2.5">6.2.5</a>, <a href="#G">G</a>
- components, <a href="#7.23.1">7.23.1</a> composite, <a href="#6.2.7">6.2.7</a>
- conversion functions, <a href="#7.23.3">7.23.3</a> const qualified, <a href="#6.7.3">6.7.3</a>
- wide character, <a href="#7.24.5">7.24.5</a> conversions, <a href="#6.3">6.3</a>
- local, <a href="#7.23.1">7.23.1</a> imaginary, <a href="#G">G</a>
- manipulation functions, <a href="#7.23.2">7.23.2</a> restrict qualified, <a href="#6.7.3">6.7.3</a>
-time function, <a href="#7.23.2.4">7.23.2.4</a> volatile qualified, <a href="#6.7.3">6.7.3</a>
-time.h header, <a href="#7.23">7.23</a>
-time_t type, <a href="#7.23.1">7.23.1</a> UCHAR_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
-tm structure type, <a href="#7.23.1">7.23.1</a>, <a href="#7.24.1">7.24.1</a> UINT_FASTN_MAX macros, <a href="#7.18.2.3">7.18.2.3</a>
-TMP_MAX macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.4.3">7.19.4.3</a>, <a href="#7.19.4.4">7.19.4.4</a> uint_fastN_t types, <a href="#7.18.1.3">7.18.1.3</a>
-tmpfile function, <a href="#7.19.4.3">7.19.4.3</a>, <a href="#7.20.4.3">7.20.4.3</a> UINT_LEASTN_MAX macros, <a href="#7.18.2.2">7.18.2.2</a>
-tmpnam function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.4.3">7.19.4.3</a>, <a href="#7.19.4.4">7.19.4.4</a> uint_leastN_t types, <a href="#7.18.1.2">7.18.1.2</a>
-token, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.4">6.4</a>, see also preprocessing tokens UINT_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
-token concatenation, <a href="#6.10.3.3">6.10.3.3</a> UINTMAX_C macro, <a href="#7.18.4.2">7.18.4.2</a>
-token pasting, <a href="#6.10.3.3">6.10.3.3</a> UINTMAX_MAX macro, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.18.2.5">7.18.2.5</a>
-
-[<a name="p538" href="#p538">page 538</a>] (<a href="#Contents">Contents</a>)
-
-uintmax_t type, <a href="#7.18.1.5">7.18.1.5</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, USHRT_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
- <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> usual arithmetic conversions, <a href="#6.3.1.8">6.3.1.8</a>, <a href="#6.5.5">6.5.5</a>, <a href="#6.5.6">6.5.6</a>,
-UINTN_C macros, <a href="#7.18.4.1">7.18.4.1</a> <a href="#6.5.8">6.5.8</a>, <a href="#6.5.9">6.5.9</a>, <a href="#6.5.10">6.5.10</a>, <a href="#6.5.11">6.5.11</a>, <a href="#6.5.12">6.5.12</a>, <a href="#6.5.15">6.5.15</a>
-UINTN_MAX macros, <a href="#7.18.2.1">7.18.2.1</a> utilities, general, <a href="#7.20">7.20</a>
-uintN_t types, <a href="#7.18.1.1">7.18.1.1</a> wide string, <a href="#7.24.4">7.24.4</a>
-UINTPTR_MAX macro, <a href="#7.18.2.4">7.18.2.4</a>
-uintptr_t type, <a href="#7.18.1.4">7.18.1.4</a> va_arg macro, <a href="#7.15">7.15</a>, <a href="#7.15.1">7.15.1</a>, <a href="#7.15.1.1">7.15.1.1</a>, <a href="#7.15.1.2">7.15.1.2</a>,
-ULLONG_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.15.1.4">7.15.1.4</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.9">7.19.6.9</a>, <a href="#7.19.6.10">7.19.6.10</a>,
- <a href="#7.24.4.1.2">7.24.4.1.2</a> <a href="#7.19.6.11">7.19.6.11</a>, <a href="#7.19.6.12">7.19.6.12</a>, <a href="#7.19.6.13">7.19.6.13</a>, <a href="#7.19.6.14">7.19.6.14</a>,
-ULONG_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.2.5">7.24.2.5</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.7">7.24.2.7</a>, <a href="#7.24.2.8">7.24.2.8</a>,
- <a href="#7.24.4.1.2">7.24.4.1.2</a> <a href="#7.24.2.9">7.24.2.9</a>, <a href="#7.24.2.10">7.24.2.10</a>
-unary arithmetic operators, <a href="#6.5.3.3">6.5.3.3</a> va_copy macro, <a href="#7.15">7.15</a>, <a href="#7.15.1">7.15.1</a>, <a href="#7.15.1.1">7.15.1.1</a>, <a href="#7.15.1.2">7.15.1.2</a>,
-unary expression, <a href="#6.5.3">6.5.3</a> <a href="#7.15.1.3">7.15.1.3</a>
-unary minus operator (-), <a href="#6.5.3.3">6.5.3.3</a>, <a href="#F.3">F.3</a> va_end macro, <a href="#7.1.3">7.1.3</a>, <a href="#7.15">7.15</a>, <a href="#7.15.1">7.15.1</a>, <a href="#7.15.1.3">7.15.1.3</a>,
-unary operators, <a href="#6.5.3">6.5.3</a> <a href="#7.15.1.4">7.15.1.4</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.9">7.19.6.9</a>, <a href="#7.19.6.10">7.19.6.10</a>,
-unary plus operator (+), <a href="#6.5.3.3">6.5.3.3</a> <a href="#7.19.6.11">7.19.6.11</a>, <a href="#7.19.6.12">7.19.6.12</a>, <a href="#7.19.6.13">7.19.6.13</a>, <a href="#7.19.6.14">7.19.6.14</a>,
-unbuffered stream, <a href="#7.19.3">7.19.3</a> <a href="#7.24.2.5">7.24.2.5</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.7">7.24.2.7</a>, <a href="#7.24.2.8">7.24.2.8</a>,
-undef preprocessing directive, <a href="#6.10.3.5">6.10.3.5</a>, <a href="#7.1.3">7.1.3</a>, <a href="#7.24.2.9">7.24.2.9</a>, <a href="#7.24.2.10">7.24.2.10</a>
- <a href="#7.1.4">7.1.4</a> va_list type, <a href="#7.15">7.15</a>, <a href="#7.15.1.3">7.15.1.3</a>
-undefined behavior, <a href="#3.4.3">3.4.3</a>, <a href="#4">4</a>, <a href="#J.2">J.2</a> va_start macro, <a href="#7.15">7.15</a>, <a href="#7.15.1">7.15.1</a>, <a href="#7.15.1.1">7.15.1.1</a>,
-underscore character, <a href="#6.4.2.1">6.4.2.1</a> <a href="#7.15.1.2">7.15.1.2</a>, <a href="#7.15.1.3">7.15.1.3</a>, <a href="#7.15.1.4">7.15.1.4</a>, <a href="#7.19.6.8">7.19.6.8</a>,
-underscore, leading, in identifier, <a href="#7.1.3">7.1.3</a> <a href="#7.19.6.9">7.19.6.9</a>, <a href="#7.19.6.10">7.19.6.10</a>, <a href="#7.19.6.11">7.19.6.11</a>, <a href="#7.19.6.12">7.19.6.12</a>,
-ungetc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.19.9.2">7.19.9.2</a>, <a href="#7.19.6.13">7.19.6.13</a>, <a href="#7.19.6.14">7.19.6.14</a>, <a href="#7.24.2.5">7.24.2.5</a>, <a href="#7.24.2.6">7.24.2.6</a>,
- <a href="#7.19.9.3">7.19.9.3</a> <a href="#7.24.2.7">7.24.2.7</a>, <a href="#7.24.2.8">7.24.2.8</a>, <a href="#7.24.2.9">7.24.2.9</a>, <a href="#7.24.2.10">7.24.2.10</a>
-ungetwc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.10">7.24.3.10</a> value, <a href="#3.17">3.17</a>
-Unicode required set, <a href="#6.10.8">6.10.8</a> value bits, <a href="#6.2.6.2">6.2.6.2</a>
-union variable arguments, <a href="#6.10.3">6.10.3</a>, <a href="#7.15">7.15</a>
- arrow operator (->), <a href="#6.5.2.3">6.5.2.3</a> variable arguments header, <a href="#7.15">7.15</a>
- content, <a href="#6.7.2.3">6.7.2.3</a> variable length array, <a href="#6.7.5">6.7.5</a>, <a href="#6.7.5.2">6.7.5.2</a>
- dot operator (.), <a href="#6.5.2.3">6.5.2.3</a> variably modified type, <a href="#6.7.5">6.7.5</a>, <a href="#6.7.5.2">6.7.5.2</a>
- initialization, <a href="#6.7.8">6.7.8</a> vertical-tab character, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>
- member alignment, <a href="#6.7.2.1">6.7.2.1</a> vertical-tab escape sequence (\v), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>,
- member name space, <a href="#6.2.3">6.2.3</a> <a href="#7.4.1.10">7.4.1.10</a>
- member operator (.), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.3">6.5.2.3</a> vfprintf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.8">7.19.6.8</a>
- pointer operator (->), <a href="#6.5.2.3">6.5.2.3</a> vfscanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.9">7.19.6.9</a>
- specifier, <a href="#6.7.2.1">6.7.2.1</a> vfwprintf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.5">7.24.2.5</a>
- tag, <a href="#6.2.3">6.2.3</a>, <a href="#6.7.2.3">6.7.2.3</a> vfwscanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.3.10">7.24.3.10</a>
- type, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2.1">6.7.2.1</a> visibility of identifier, <a href="#6.2.1">6.2.1</a>
-universal character name, <a href="#6.4.3">6.4.3</a> VLA, see variable length array
-unqualified type, <a href="#6.2.5">6.2.5</a> void expression, <a href="#6.3.2.2">6.3.2.2</a>
-unqualified version of type, <a href="#6.2.5">6.2.5</a> void function parameter, <a href="#6.7.5.3">6.7.5.3</a>
-unsigned integer suffix, u or <a href="#U">U</a>, <a href="#6.4.4.1">6.4.4.1</a> void type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.2.2">6.3.2.2</a>, <a href="#6.7.2">6.7.2</a>
-unsigned integer types, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.4.4.1">6.4.4.1</a> void type conversion, <a href="#6.3.2.2">6.3.2.2</a>
-unsigned type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, volatile storage, <a href="#5.1.2.3">5.1.2.3</a>
- <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.8">6.3.1.8</a> volatile type qualifier, <a href="#6.7.3">6.7.3</a>
-unsigned types, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2">6.7.2</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, volatile-qualified type, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.3">6.7.3</a>
- <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> vprintf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.10">7.19.6.10</a>
-unspecified behavior, <a href="#3.4.4">3.4.4</a>, <a href="#4">4</a>, <a href="#J.1">J.1</a> vscanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.11">7.19.6.11</a>
-unspecified value, <a href="#3.17.3">3.17.3</a> vsnprintf function, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.12">7.19.6.12</a>
-uppercase letter, <a href="#5.2.1">5.2.1</a> vsprintf function, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.13">7.19.6.13</a>
-use of library functions, <a href="#7.1.4">7.1.4</a> vsscanf function, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.14">7.19.6.14</a>
-
-[<a name="p539" href="#p539">page 539</a>] (<a href="#Contents">Contents</a>)
-
-vswprintf function, <a href="#7.24.2.7">7.24.2.7</a> wctype.h header, <a href="#7.25">7.25</a>, <a href="#7.26.13">7.26.13</a>
-vswscanf function, <a href="#7.24.2.8">7.24.2.8</a> wctype_t type, <a href="#7.25.1">7.25.1</a>, <a href="#7.25.2.2.2">7.25.2.2.2</a>
-vwprintf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.9">7.24.2.9</a> WEOF macro, <a href="#7.24.1">7.24.1</a>, <a href="#7.24.3.1">7.24.3.1</a>, <a href="#7.24.3.3">7.24.3.3</a>, <a href="#7.24.3.6">7.24.3.6</a>,
-vwscanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.10">7.24.2.10</a>, <a href="#7.24.3.10">7.24.3.10</a> <a href="#7.24.3.7">7.24.3.7</a>, <a href="#7.24.3.8">7.24.3.8</a>, <a href="#7.24.3.9">7.24.3.9</a>, <a href="#7.24.3.10">7.24.3.10</a>,
- <a href="#7.24.6.1.1">7.24.6.1.1</a>, <a href="#7.25.1">7.25.1</a>
-warnings, <a href="#I">I</a> while statement, <a href="#6.8.5.1">6.8.5.1</a>
-wchar.h header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.24">7.24</a>, <a href="#7.26.12">7.26.12</a>, white space, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.4">6.4</a>, <a href="#6.10">6.10</a>, <a href="#7.4.1.10">7.4.1.10</a>,
- <a href="#F">F</a> <a href="#7.25.2.1.10">7.25.2.1.10</a>
-WCHAR_MAX macro, <a href="#7.18.3">7.18.3</a>, <a href="#7.24.1">7.24.1</a> white-space characters, <a href="#6.4">6.4</a>
-WCHAR_MIN macro, <a href="#7.18.3">7.18.3</a>, <a href="#7.24.1">7.24.1</a> wide character, <a href="#3.7.3">3.7.3</a>
-wchar_t type, <a href="#3.7.3">3.7.3</a>, <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.4.5">6.4.5</a>, <a href="#6.7.8">6.7.8</a>, case mapping functions, <a href="#7.25.3.1">7.25.3.1</a>
- <a href="#6.10.8">6.10.8</a>, <a href="#7.17">7.17</a>, <a href="#7.18.3">7.18.3</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20">7.20</a>, extensible, <a href="#7.25.3.2">7.25.3.2</a>
- <a href="#7.24.1">7.24.1</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> classification functions, <a href="#7.25.2.1">7.25.2.1</a>
-wcrtomb function, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>, extensible, <a href="#7.25.2.2">7.25.2.2</a>
- <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4.2">7.24.6.4.2</a> constant, <a href="#6.4.4.4">6.4.4.4</a>
-wcscat function, <a href="#7.24.4.3.1">7.24.4.3.1</a> formatted input/output functions, <a href="#7.24.2">7.24.2</a>
-wcschr function, <a href="#7.24.4.5.1">7.24.4.5.1</a> input functions, <a href="#7.19.1">7.19.1</a>
-wcscmp function, <a href="#7.24.4.4.1">7.24.4.4.1</a>, <a href="#7.24.4.4.4">7.24.4.4.4</a> input/output functions, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3">7.24.3</a>
-wcscoll function, <a href="#7.24.4.4.2">7.24.4.4.2</a>, <a href="#7.24.4.4.4">7.24.4.4.4</a> output functions, <a href="#7.19.1">7.19.1</a>
-wcscpy function, <a href="#7.24.4.2.1">7.24.4.2.1</a> single-byte conversion functions, <a href="#7.24.6.1">7.24.6.1</a>
-wcscspn function, <a href="#7.24.4.5.2">7.24.4.5.2</a> wide string, <a href="#7.1.1">7.1.1</a>
-wcsftime function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.24.5.1">7.24.5.1</a> wide string comparison functions, <a href="#7.24.4.4">7.24.4.4</a>
-wcslen function, <a href="#7.24.4.6.1">7.24.4.6.1</a> wide string concatenation functions, <a href="#7.24.4.3">7.24.4.3</a>
-wcsncat function, <a href="#7.24.4.3.2">7.24.4.3.2</a> wide string copying functions, <a href="#7.24.4.2">7.24.4.2</a>
-wcsncmp function, <a href="#7.24.4.4.3">7.24.4.4.3</a> wide string literal, see string literal
-wcsncpy function, <a href="#7.24.4.2.2">7.24.4.2.2</a> wide string miscellaneous functions, <a href="#7.24.4.6">7.24.4.6</a>
-wcspbrk function, <a href="#7.24.4.5.3">7.24.4.5.3</a> wide string numeric conversion functions, <a href="#7.8.2.4">7.8.2.4</a>,
-wcsrchr function, <a href="#7.24.4.5.4">7.24.4.5.4</a> <a href="#7.24.4.1">7.24.4.1</a>
-wcsrtombs function, <a href="#7.24.6.4.2">7.24.6.4.2</a> wide string search functions, <a href="#7.24.4.5">7.24.4.5</a>
-wcsspn function, <a href="#7.24.4.5.5">7.24.4.5.5</a> wide-oriented stream, <a href="#7.19.2">7.19.2</a>
-wcsstr function, <a href="#7.24.4.5.6">7.24.4.5.6</a> width, <a href="#6.2.6.2">6.2.6.2</a>
-wcstod function, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a> WINT_MAX macro, <a href="#7.18.3">7.18.3</a>
-wcstod function, <a href="#7.24.4.1.1">7.24.4.1.1</a> WINT_MIN macro, <a href="#7.18.3">7.18.3</a>
-wcstof function, <a href="#7.24.4.1.1">7.24.4.1.1</a> wint_t type, <a href="#7.18.3">7.18.3</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.1">7.24.1</a>, <a href="#7.24.2.1">7.24.2.1</a>,
-wcstoimax function, <a href="#7.8.2.4">7.8.2.4</a> <a href="#7.25.1">7.25.1</a>
-wcstok function, <a href="#7.24.4.5.7">7.24.4.5.7</a> wmemchr function, <a href="#7.24.4.5.8">7.24.4.5.8</a>
-wcstol function, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>, wmemcmp function, <a href="#7.24.4.4.5">7.24.4.4.5</a>
- <a href="#7.24.4.1.2">7.24.4.1.2</a> wmemcpy function, <a href="#7.24.4.2.3">7.24.4.2.3</a>
-wcstold function, <a href="#7.24.4.1.1">7.24.4.1.1</a> wmemmove function, <a href="#7.24.4.2.4">7.24.4.2.4</a>
-wcstoll function, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a> wmemset function, <a href="#7.24.4.6.2">7.24.4.6.2</a>
-wcstombs function, <a href="#7.20.8.2">7.20.8.2</a>, <a href="#7.24.6.4">7.24.6.4</a> wprintf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.9">7.24.2.9</a>, <a href="#7.24.2.11">7.24.2.11</a>
-wcstoul function, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>, wscanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.10">7.24.2.10</a>, <a href="#7.24.2.12">7.24.2.12</a>,
- <a href="#7.24.4.1.2">7.24.4.1.2</a> <a href="#7.24.3.10">7.24.3.10</a>
-wcstoull function, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a>
-wcstoumax function, <a href="#7.8.2.4">7.8.2.4</a> xor macro, <a href="#7.9">7.9</a>
-wcsxfrm function, <a href="#7.24.4.4.4">7.24.4.4.4</a> xor_eq macro, <a href="#7.9">7.9</a>
-wctob function, <a href="#7.24.6.1.2">7.24.6.1.2</a>, <a href="#7.25.2.1">7.25.2.1</a>
-wctomb function, <a href="#7.20.7.3">7.20.7.3</a>, <a href="#7.20.8.2">7.20.8.2</a>, <a href="#7.24.6.3">7.24.6.3</a>
-wctrans function, <a href="#7.25.3.2.1">7.25.3.2.1</a>, <a href="#7.25.3.2.2">7.25.3.2.2</a>
-wctrans_t type, <a href="#7.25.1">7.25.1</a>, <a href="#7.25.3.2.2">7.25.3.2.2</a>
-wctype function, <a href="#7.25.2.2.1">7.25.2.2.1</a>, <a href="#7.25.2.2.2">7.25.2.2.2</a>
-
-[<a name="p540" href="#p540">page 540</a>] (<a href="#Contents">Contents</a>)
-</pre></body></html>
+ feupdateenv(&save_env);
+ return result;
+ }
+</pre>
+ The round functions may, but are not required to, raise the ''inexact'' floating-point
+ exception for non-integer numeric arguments, as this implementation does.
+
+<h5><a name="F.9.6.7" href="#F.9.6.7">F.9.6.7 The lround and llround functions</a></h5>
+<p><!--para 1 -->
+ The lround and llround functions differ from the lrint and llrint functions
+ with the default rounding direction just in that the lround and llround functions
+ round halfway cases away from zero and need not raise the ''inexact'' floating-point
+ exception for non-integer arguments that round to within the range of the return type.
+
+<h5><a name="F.9.6.8" href="#F.9.6.8">F.9.6.8 The trunc functions</a></h5>
+<p><!--para 1 -->
+ The trunc functions use IEC 60559 rounding toward zero (regardless of the current
+ rounding direction).
+<ul>
+<li> trunc((+-)0) returns (+-)0.
+<li> trunc((+-)(inf)) returns (+-)(inf).
+<!--page 477 -->
+</ul>
+
+<h4><a name="F.9.7" href="#F.9.7">F.9.7 Remainder functions</a></h4>
+
+<h5><a name="F.9.7.1" href="#F.9.7.1">F.9.7.1 The fmod functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> fmod((+-)0, y) returns (+-)0 for y not zero.
+<li> fmod(x, y) returns a NaN and raises the ''invalid'' floating-point exception for x
+ infinite or y zero.
+<li> fmod(x, (+-)(inf)) returns x for x not infinite.
+</ul>
+<p><!--para 2 -->
+ The double version of fmod behaves as though implemented by
+<pre>
+ #include <a href="#7.12"><math.h></a>
+ #include <a href="#7.6"><fenv.h></a>
+ #pragma STDC FENV_ACCESS ON
+ double fmod(double x, double y)
+ {
+ double result;
+ result = remainder(fabs(x), (y = fabs(y)));
+ if (signbit(result)) result += y;
+ return copysign(result, x);
+ }
+</pre>
+
+<h5><a name="F.9.7.2" href="#F.9.7.2">F.9.7.2 The remainder functions</a></h5>
+<p><!--para 1 -->
+ The remainder functions are fully specified as a basic arithmetic operation in
+ IEC 60559.
+
+<h5><a name="F.9.7.3" href="#F.9.7.3">F.9.7.3 The remquo functions</a></h5>
+<p><!--para 1 -->
+ The remquo functions follow the specifications for the remainder functions. They
+ have no further specifications special to IEC 60559 implementations.
+
+<h4><a name="F.9.8" href="#F.9.8">F.9.8 Manipulation functions</a></h4>
+
+<h5><a name="F.9.8.1" href="#F.9.8.1">F.9.8.1 The copysign functions</a></h5>
+<p><!--para 1 -->
+ copysign is specified in the Appendix to IEC 60559.
+
+<h5><a name="F.9.8.2" href="#F.9.8.2">F.9.8.2 The nan functions</a></h5>
+<p><!--para 1 -->
+ All IEC 60559 implementations support quiet NaNs, in all floating formats.
+<!--page 478 -->
+
+<h5><a name="F.9.8.3" href="#F.9.8.3">F.9.8.3 The nextafter functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> nextafter(x, y) raises the ''overflow'' and ''inexact'' floating-point exceptions
+ for x finite and the function value infinite.
+<li> nextafter(x, y) raises the ''underflow'' and ''inexact'' floating-point
+ exceptions for the function value subnormal or zero and x != y.
+</ul>
+
+<h5><a name="F.9.8.4" href="#F.9.8.4">F.9.8.4 The nexttoward functions</a></h5>
+<p><!--para 1 -->
+ No additional requirements beyond those on nextafter.
+
+<h4><a name="F.9.9" href="#F.9.9">F.9.9 Maximum, minimum, and positive difference functions</a></h4>
+
+<h5><a name="F.9.9.1" href="#F.9.9.1">F.9.9.1 The fdim functions</a></h5>
+<p><!--para 1 -->
+ No additional requirements.
+
+<h5><a name="F.9.9.2" href="#F.9.9.2">F.9.9.2 The fmax functions</a></h5>
+<p><!--para 1 -->
+ If just one argument is a NaN, the fmax functions return the other argument (if both
+ arguments are NaNs, the functions return a NaN).
+<p><!--para 2 -->
+ The body of the fmax function might be<sup><a href="#note323"><b>323)</b></a></sup>
+<pre>
+ { return (isgreaterequal(x, y) ||
+ isnan(y)) ? x : y; }
+</pre>
+
+<p><b>Footnotes</b>
+<p><small><a name="note323" href="#note323">323)</a> Ideally, fmax would be sensitive to the sign of zero, for example fmax(-0.0, +0.0) would
+ return +0; however, implementation in software might be impractical.
+</small>
+
+<h5><a name="F.9.9.3" href="#F.9.9.3">F.9.9.3 The fmin functions</a></h5>
+<p><!--para 1 -->
+ The fmin functions are analogous to the fmax functions (see <a href="#F.9.9.2">F.9.9.2</a>).
+
+<h4><a name="F.9.10" href="#F.9.10">F.9.10 Floating multiply-add</a></h4>
+
+<h5><a name="F.9.10.1" href="#F.9.10.1">F.9.10.1 The fma functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> fma(x, y, z) computes xy + z, correctly rounded once.
+<li> fma(x, y, z) returns a NaN and optionally raises the ''invalid'' floating-point
+ exception if one of x and y is infinite, the other is zero, and z is a NaN.
+<li> fma(x, y, z) returns a NaN and raises the ''invalid'' floating-point exception if
+ one of x and y is infinite, the other is zero, and z is not a NaN.
+<li> fma(x, y, z) returns a NaN and raises the ''invalid'' floating-point exception if x
+ times y is an exact infinity and z is also an infinity but with the opposite sign.
+
+
+
+
+<!--page 479 -->
+</ul>
+
+<h2><a name="G" href="#G">Annex G</a></h2>
+<pre>
+ (informative)
+ IEC 60559-compatible complex arithmetic
+</pre>
+
+<h3><a name="G.1" href="#G.1">G.1 Introduction</a></h3>
+<p><!--para 1 -->
+ This annex supplements <a href="#F">annex F</a> to specify complex arithmetic for compatibility with
+ IEC 60559 real floating-point arithmetic. Although these specifications have been
+ carefully designed, there is little existing practice to validate the design decisions.
+ Therefore, these specifications are not normative, but should be viewed more as
+ recommended practice. An implementation that defines
+ __STDC_IEC_559_COMPLEX__ should conform to the specifications in this annex.
+
+<h3><a name="G.2" href="#G.2">G.2 Types</a></h3>
+<p><!--para 1 -->
+ There is a new keyword _Imaginary, which is used to specify imaginary types. It is
+ used as a type specifier within declaration specifiers in the same way as _Complex is
+ (thus, _Imaginary float is a valid type name).
+<p><!--para 2 -->
+ There are three imaginary types, designated as float _Imaginary, double
+ _Imaginary, and long double _Imaginary. The imaginary types (along with
+ the real floating and complex types) are floating types.
+<p><!--para 3 -->
+ For imaginary types, the corresponding real type is given by deleting the keyword
+ _Imaginary from the type name.
+<p><!--para 4 -->
+ Each imaginary type has the same representation and alignment requirements as the
+ corresponding real type. The value of an object of imaginary type is the value of the real
+ representation times the imaginary unit.
+<p><!--para 5 -->
+ The imaginary type domain comprises the imaginary types.
+
+<h3><a name="G.3" href="#G.3">G.3 Conventions</a></h3>
+<p><!--para 1 -->
+ A complex or imaginary value with at least one infinite part is regarded as an infinity
+ (even if its other part is a NaN). A complex or imaginary value is a finite number if each
+ of its parts is a finite number (neither infinite nor NaN). A complex or imaginary value is
+ a zero if each of its parts is a zero.
+<!--page 480 -->
+
+<h3><a name="G.4" href="#G.4">G.4 Conversions</a></h3>
+
+<h4><a name="G.4.1" href="#G.4.1">G.4.1 Imaginary types</a></h4>
+<p><!--para 1 -->
+ Conversions among imaginary types follow rules analogous to those for real floating
+ types.
+
+<h4><a name="G.4.2" href="#G.4.2">G.4.2 Real and imaginary</a></h4>
+<p><!--para 1 -->
+ When a value of imaginary type is converted to a real type other than _Bool,<sup><a href="#note324"><b>324)</b></a></sup> the
+ result is a positive zero.
+<p><!--para 2 -->
+ When a value of real type is converted to an imaginary type, the result is a positive
+ imaginary zero.
+
+<p><b>Footnotes</b>
+<p><small><a name="note324" href="#note324">324)</a> See <a href="#6.3.1.2">6.3.1.2</a>.
+</small>
+
+<h4><a name="G.4.3" href="#G.4.3">G.4.3 Imaginary and complex</a></h4>
+<p><!--para 1 -->
+ When a value of imaginary type is converted to a complex type, the real part of the
+ complex result value is a positive zero and the imaginary part of the complex result value
+ is determined by the conversion rules for the corresponding real types.
+<p><!--para 2 -->
+ When a value of complex type is converted to an imaginary type, the real part of the
+ complex value is discarded and the value of the imaginary part is converted according to
+ the conversion rules for the corresponding real types.
+
+<h3><a name="G.5" href="#G.5">G.5 Binary operators</a></h3>
+<p><!--para 1 -->
+ The following subclauses supplement <a href="#6.5">6.5</a> in order to specify the type of the result for an
+ operation with an imaginary operand.
+<p><!--para 2 -->
+ For most operand types, the value of the result of a binary operator with an imaginary or
+ complex operand is completely determined, with reference to real arithmetic, by the usual
+ mathematical formula. For some operand types, the usual mathematical formula is
+ problematic because of its treatment of infinities and because of undue overflow or
+ underflow; in these cases the result satisfies certain properties (specified in <a href="#G.5.1">G.5.1</a>), but is
+ not completely determined.
+
+
+
+
+<!--page 481 -->
+
+<h4><a name="G.5.1" href="#G.5.1">G.5.1 Multiplicative operators</a></h4>
+<p><b>Semantics</b>
+<p><!--para 1 -->
+ If one operand has real type and the other operand has imaginary type, then the result has
+ imaginary type. If both operands have imaginary type, then the result has real type. (If
+ either operand has complex type, then the result has complex type.)
+<p><!--para 2 -->
+ If the operands are not both complex, then the result and floating-point exception
+ behavior of the * operator is defined by the usual mathematical formula:
+<pre>
+ * u iv u + iv
+</pre>
+
+<pre>
+ x xu i(xv) (xu) + i(xv)
+</pre>
+
+<pre>
+ iy i(yu) -yv (-yv) + i(yu)
+</pre>
+
+<pre>
+ x + iy (xu) + i(yu) (-yv) + i(xv)
+</pre>
+<p><!--para 3 -->
+ If the second operand is not complex, then the result and floating-point exception
+ behavior of the / operator is defined by the usual mathematical formula:
+<pre>
+ / u iv
+</pre>
+
+<pre>
+ x x/u i(-x/v)
+</pre>
+
+<pre>
+ iy i(y/u) y/v
+</pre>
+
+<pre>
+ x + iy (x/u) + i(y/u) (y/v) + i(-x/v)
+</pre>
+<p><!--para 4 -->
+ The * and / operators satisfy the following infinity properties for all real, imaginary, and
+ complex operands:<sup><a href="#note325"><b>325)</b></a></sup>
+<ul>
+<li> if one operand is an infinity and the other operand is a nonzero finite number or an
+ infinity, then the result of the * operator is an infinity;
+<li> if the first operand is an infinity and the second operand is a finite number, then the
+ result of the / operator is an infinity;
+<li> if the first operand is a finite number and the second operand is an infinity, then the
+ result of the / operator is a zero;
+
+
+
+
+<!--page 482 -->
+<li> if the first operand is a nonzero finite number or an infinity and the second operand is
+ a zero, then the result of the / operator is an infinity.
+</ul>
+<p><!--para 5 -->
+ If both operands of the * operator are complex or if the second operand of the / operator
+ is complex, the operator raises floating-point exceptions if appropriate for the calculation
+ of the parts of the result, and may raise spurious floating-point exceptions.
+<p><!--para 6 -->
+ EXAMPLE 1 Multiplication of double _Complex operands could be implemented as follows. Note
+ that the imaginary unit I has imaginary type (see <a href="#G.6">G.6</a>).
+<!--page 483 -->
+<pre>
+ #include <a href="#7.12"><math.h></a>
+ #include <a href="#7.3"><complex.h></a>
+ /* Multiply z * w ... */
+ double complex _Cmultd(double complex z, double complex w)
+ {
+ #pragma STDC FP_CONTRACT OFF
+ double a, b, c, d, ac, bd, ad, bc, x, y;
+ a = creal(z); b = cimag(z);
+ c = creal(w); d = cimag(w);
+ ac = a * c; bd = b * d;
+ ad = a * d; bc = b * c;
+ x = ac - bd; y = ad + bc;
+ if (isnan(x) && isnan(y)) {
+ /* Recover infinities that computed as NaN+iNaN ... */
+ int recalc = 0;
+ if ( isinf(a) || isinf(b) ) { // z is infinite
+ /* "Box" the infinity and change NaNs in the other factor to 0 */
+ a = copysign(isinf(a) ? 1.0 : 0.0, a);
+ b = copysign(isinf(b) ? 1.0 : 0.0, b);
+ if (isnan(c)) c = copysign(0.0, c);
+ if (isnan(d)) d = copysign(0.0, d);
+ recalc = 1;
+ }
+ if ( isinf(c) || isinf(d) ) { // w is infinite
+ /* "Box" the infinity and change NaNs in the other factor to 0 */
+ c = copysign(isinf(c) ? 1.0 : 0.0, c);
+ d = copysign(isinf(d) ? 1.0 : 0.0, d);
+ if (isnan(a)) a = copysign(0.0, a);
+ if (isnan(b)) b = copysign(0.0, b);
+ recalc = 1;
+ }
+ if (!recalc && (isinf(ac) || isinf(bd) ||
+ isinf(ad) || isinf(bc))) {
+ /* Recover infinities from overflow by changing NaNs to 0 ... */
+ if (isnan(a)) a = copysign(0.0, a);
+ if (isnan(b)) b = copysign(0.0, b);
+ if (isnan(c)) c = copysign(0.0, c);
+ if (isnan(d)) d = copysign(0.0, d);
+ recalc = 1;
+ }
+ if (recalc) {
+ x = INFINITY * ( a * c - b * d );
+ y = INFINITY * ( a * d + b * c );
+ }
+ }
+ return x + I * y;
+ }
+</pre>
+<p><!--para 7 -->
+ This implementation achieves the required treatment of infinities at the cost of only one isnan test in
+ ordinary (finite) cases. It is less than ideal in that undue overflow and underflow may occur.
+
+<p><!--para 8 -->
+ EXAMPLE 2 Division of two double _Complex operands could be implemented as follows.
+<!--page 484 -->
+<pre>
+ #include <a href="#7.12"><math.h></a>
+ #include <a href="#7.3"><complex.h></a>
+ /* Divide z / w ... */
+ double complex _Cdivd(double complex z, double complex w)
+ {
+ #pragma STDC FP_CONTRACT OFF
+ double a, b, c, d, logbw, denom, x, y;
+ int ilogbw = 0;
+ a = creal(z); b = cimag(z);
+ c = creal(w); d = cimag(w);
+ logbw = logb(fmax(fabs(c), fabs(d)));
+ if (isfinite(logbw)) {
+ ilogbw = (int)logbw;
+ c = scalbn(c, -ilogbw); d = scalbn(d, -ilogbw);
+ }
+ denom = c * c + d * d;
+ x = scalbn((a * c + b * d) / denom, -ilogbw);
+ y = scalbn((b * c - a * d) / denom, -ilogbw);
+ /* Recover infinities and zeros that computed as NaN+iNaN; */
+ /* the only cases are nonzero/zero, infinite/finite, and finite/infinite, ... */
+ if (isnan(x) && isnan(y)) {
+ if ((denom == 0.0) &&
+ (!isnan(a) || !isnan(b))) {
+ x = copysign(INFINITY, c) * a;
+ y = copysign(INFINITY, c) * b;
+ }
+ else if ((isinf(a) || isinf(b)) &&
+ isfinite(c) && isfinite(d)) {
+ a = copysign(isinf(a) ? 1.0 : 0.0, a);
+ b = copysign(isinf(b) ? 1.0 : 0.0, b);
+ x = INFINITY * ( a * c + b * d );
+ y = INFINITY * ( b * c - a * d );
+ }
+ else if (isinf(logbw) &&
+ isfinite(a) && isfinite(b)) {
+ c = copysign(isinf(c) ? 1.0 : 0.0, c);
+ d = copysign(isinf(d) ? 1.0 : 0.0, d);
+ x = 0.0 * ( a * c + b * d );
+ y = 0.0 * ( b * c - a * d );
+ }
+ }
+ return x + I * y;
+ }
+</pre>
+<p><!--para 9 -->
+ Scaling the denominator alleviates the main overflow and underflow problem, which is more serious than
+ for multiplication. In the spirit of the multiplication example above, this code does not defend against
+ overflow and underflow in the calculation of the numerator. Scaling with the scalbn function, instead of
+ with division, provides better roundoff characteristics.
+
+
+<p><b>Footnotes</b>
+<p><small><a name="note325" href="#note325">325)</a> These properties are already implied for those cases covered in the tables, but are required for all cases
+ (at least where the state for CX_LIMITED_RANGE is ''off'').
+</small>
+
+<h4><a name="G.5.2" href="#G.5.2">G.5.2 Additive operators</a></h4>
+<p><b>Semantics</b>
+<p><!--para 1 -->
+ If both operands have imaginary type, then the result has imaginary type. (If one operand
+ has real type and the other operand has imaginary type, or if either operand has complex
+ type, then the result has complex type.)
+<p><!--para 2 -->
+ In all cases the result and floating-point exception behavior of a + or - operator is defined
+ by the usual mathematical formula:
+<pre>
+ + or - u iv u + iv
+</pre>
+
+<pre>
+ x x(+-)u x (+-) iv (x (+-) u) (+-) iv
+</pre>
+
+<pre>
+ iy (+-)u + iy i(y (+-) v) (+-)u + i(y (+-) v)
+</pre>
+
+<pre>
+ x + iy (x (+-) u) + iy x + i(y (+-) v) (x (+-) u) + i(y (+-) v)
+</pre>
+
+<h3><a name="G.6" href="#G.6">G.6 Complex arithmetic <complex.h></a></h3>
+<p><!--para 1 -->
+ The macros
+<pre>
+ imaginary
+</pre>
+ and
+<pre>
+ _Imaginary_I
+</pre>
+ are defined, respectively, as _Imaginary and a constant expression of type const
+ float _Imaginary with the value of the imaginary unit. The macro
+<pre>
+ I
+</pre>
+ is defined to be _Imaginary_I (not _Complex_I as stated in <a href="#7.3">7.3</a>). Notwithstanding
+ the provisions of <a href="#7.1.3">7.1.3</a>, a program may undefine and then perhaps redefine the macro
+ imaginary.
+<p><!--para 2 -->
+ This subclause contains specifications for the <a href="#7.3"><complex.h></a> functions that are
+ particularly suited to IEC 60559 implementations. For families of functions, the
+ specifications apply to all of the functions even though only the principal function is
+<!--page 485 -->
+ shown. Unless otherwise specified, where the symbol ''(+-)'' occurs in both an argument
+ and the result, the result has the same sign as the argument.
+<p><!--para 3 -->
+ The functions are continuous onto both sides of their branch cuts, taking into account the
+ sign of zero. For example, csqrt(-2 (+-) i0) = (+-)i(sqrt)2. ???
+<p><!--para 4 -->
+ Since complex and imaginary values are composed of real values, each function may be
+ regarded as computing real values from real values. Except as noted, the functions treat
+ real infinities, NaNs, signed zeros, subnormals, and the floating-point exception flags in a
+ manner consistent with the specifications for real functions in F.9.<sup><a href="#note326"><b>326)</b></a></sup>
+<p><!--para 5 -->
+ The functions cimag, conj, cproj, and creal are fully specified for all
+ implementations, including IEC 60559 ones, in <a href="#7.3.9">7.3.9</a>. These functions raise no floating-
+ point exceptions.
+<p><!--para 6 -->
+ Each of the functions cabs and carg is specified by a formula in terms of a real
+ function (whose special cases are covered in <a href="#F">annex F</a>):
+<pre>
+ cabs(x + iy) = hypot(x, y)
+ carg(x + iy) = atan2(y, x)
+</pre>
+<p><!--para 7 -->
+ Each of the functions casin, catan, ccos, csin, and ctan is specified implicitly by
+ a formula in terms of other complex functions (whose special cases are specified below):
+<pre>
+ casin(z) = -i casinh(iz)
+ catan(z) = -i catanh(iz)
+ ccos(z) = ccosh(iz)
+ csin(z) = -i csinh(iz)
+ ctan(z) = -i ctanh(iz)
+</pre>
+<p><!--para 8 -->
+ For the other functions, the following subclauses specify behavior for special cases,
+ including treatment of the ''invalid'' and ''divide-by-zero'' floating-point exceptions. For
+ families of functions, the specifications apply to all of the functions even though only the
+ principal function is shown. For a function f satisfying f (conj(z)) = conj( f (z)), the
+ specifications for the upper half-plane imply the specifications for the lower half-plane; if
+ the function f is also either even, f (-z) = f (z), or odd, f (-z) = - f (z), then the
+ specifications for the first quadrant imply the specifications for the other three quadrants.
+<p><!--para 9 -->
+ In the following subclauses, cis(y) is defined as cos(y) + i sin(y).
+
+
+
+
+<!--page 486 -->
+
+<p><b>Footnotes</b>
+<p><small><a name="note326" href="#note326">326)</a> As noted in <a href="#G.3">G.3</a>, a complex value with at least one infinite part is regarded as an infinity even if its
+ other part is a NaN.
+</small>
+
+<h4><a name="G.6.1" href="#G.6.1">G.6.1 Trigonometric functions</a></h4>
+
+<h5><a name="G.6.1.1" href="#G.6.1.1">G.6.1.1 The cacos functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> cacos(conj(z)) = conj(cacos(z)).
+<li> cacos((+-)0 + i0) returns pi /2 - i0.
+<li> cacos((+-)0 + iNaN) returns pi /2 + iNaN.
+<li> cacos(x + i (inf)) returns pi /2 - i (inf), for finite x.
+<li> cacos(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for nonzero finite x.
+<li> cacos(-(inf) + iy) returns pi - i (inf), for positive-signed finite y.
+<li> cacos(+(inf) + iy) returns +0 - i (inf), for positive-signed finite y.
+<li> cacos(-(inf) + i (inf)) returns 3pi /4 - i (inf).
+<li> cacos(+(inf) + i (inf)) returns pi /4 - i (inf).
+<li> cacos((+-)(inf) + iNaN) returns NaN (+-) i (inf) (where the sign of the imaginary part of the
+ result is unspecified).
+<li> cacos(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for finite y.
+<li> cacos(NaN + i (inf)) returns NaN - i (inf).
+<li> cacos(NaN + iNaN) returns NaN + iNaN.
+</ul>
+
+<h4><a name="G.6.2" href="#G.6.2">G.6.2 Hyperbolic functions</a></h4>
+
+<h5><a name="G.6.2.1" href="#G.6.2.1">G.6.2.1 The cacosh functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> cacosh(conj(z)) = conj(cacosh(z)).
+<li> cacosh((+-)0 + i0) returns +0 + ipi /2.
+<li> cacosh(x + i (inf)) returns +(inf) + ipi /2, for finite x.
+<li> cacosh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid''
+ floating-point exception, for finite x.
+<li> cacosh(-(inf) + iy) returns +(inf) + ipi , for positive-signed finite y.
+<li> cacosh(+(inf) + iy) returns +(inf) + i0, for positive-signed finite y.
+<li> cacosh(-(inf) + i (inf)) returns +(inf) + i3pi /4.
+<li> cacosh(+(inf) + i (inf)) returns +(inf) + ipi /4.
+<li> cacosh((+-)(inf) + iNaN) returns +(inf) + iNaN.
+<!--page 487 -->
+<li> cacosh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid''
+ floating-point exception, for finite y.
+<li> cacosh(NaN + i (inf)) returns +(inf) + iNaN.
+<li> cacosh(NaN + iNaN) returns NaN + iNaN.
+</ul>
+
+<h5><a name="G.6.2.2" href="#G.6.2.2">G.6.2.2 The casinh functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> casinh(conj(z)) = conj(casinh(z)) and casinh is odd.
+<li> casinh(+0 + i0) returns 0 + i0.
+<li> casinh(x + i (inf)) returns +(inf) + ipi /2 for positive-signed finite x.
+<li> casinh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid''
+ floating-point exception, for finite x.
+<li> casinh(+(inf) + iy) returns +(inf) + i0 for positive-signed finite y.
+<li> casinh(+(inf) + i (inf)) returns +(inf) + ipi /4.
+<li> casinh(+(inf) + iNaN) returns +(inf) + iNaN.
+<li> casinh(NaN + i0) returns NaN + i0.
+<li> casinh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid''
+ floating-point exception, for finite nonzero y.
+<li> casinh(NaN + i (inf)) returns (+-)(inf) + iNaN (where the sign of the real part of the result
+ is unspecified).
+<li> casinh(NaN + iNaN) returns NaN + iNaN.
+</ul>
+
+<h5><a name="G.6.2.3" href="#G.6.2.3">G.6.2.3 The catanh functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> catanh(conj(z)) = conj(catanh(z)) and catanh is odd.
+<li> catanh(+0 + i0) returns +0 + i0.
+<li> catanh(+0 + iNaN) returns +0 + iNaN.
+<li> catanh(+1 + i0) returns +(inf) + i0 and raises the ''divide-by-zero'' floating-point
+ exception.
+<li> catanh(x + i (inf)) returns +0 + ipi /2, for finite positive-signed x.
+<li> catanh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid''
+ floating-point exception, for nonzero finite x.
+<li> catanh(+(inf) + iy) returns +0 + ipi /2, for finite positive-signed y.
+<li> catanh(+(inf) + i (inf)) returns +0 + ipi /2.
+<li> catanh(+(inf) + iNaN) returns +0 + iNaN.
+<!--page 488 -->
+<li> catanh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid''
+ floating-point exception, for finite y.
+<li> catanh(NaN + i (inf)) returns (+-)0 + ipi /2 (where the sign of the real part of the result is
+ unspecified).
+<li> catanh(NaN + iNaN) returns NaN + iNaN.
+</ul>
+
+<h5><a name="G.6.2.4" href="#G.6.2.4">G.6.2.4 The ccosh functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> ccosh(conj(z)) = conj(ccosh(z)) and ccosh is even.
+<li> ccosh(+0 + i0) returns 1 + i0.
+<li> ccosh(+0 + i (inf)) returns NaN (+-) i0 (where the sign of the imaginary part of the
+ result is unspecified) and raises the ''invalid'' floating-point exception.
+<li> ccosh(+0 + iNaN) returns NaN (+-) i0 (where the sign of the imaginary part of the
+ result is unspecified).
+<li> ccosh(x + i (inf)) returns NaN + iNaN and raises the ''invalid'' floating-point
+ exception, for finite nonzero x.
+<li> ccosh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for finite nonzero x.
+<li> ccosh(+(inf) + i0) returns +(inf) + i0.
+<li> ccosh(+(inf) + iy) returns +(inf) cis(y), for finite nonzero y.
+<li> ccosh(+(inf) + i (inf)) returns (+-)(inf) + iNaN (where the sign of the real part of the result is
+ unspecified) and raises the ''invalid'' floating-point exception.
+<li> ccosh(+(inf) + iNaN) returns +(inf) + iNaN.
+<li> ccosh(NaN + i0) returns NaN (+-) i0 (where the sign of the imaginary part of the
+ result is unspecified).
+<li> ccosh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for all nonzero numbers y.
+<li> ccosh(NaN + iNaN) returns NaN + iNaN.
+</ul>
+
+<h5><a name="G.6.2.5" href="#G.6.2.5">G.6.2.5 The csinh functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> csinh(conj(z)) = conj(csinh(z)) and csinh is odd.
+<li> csinh(+0 + i0) returns +0 + i0.
+<li> csinh(+0 + i (inf)) returns (+-)0 + iNaN (where the sign of the real part of the result is
+ unspecified) and raises the ''invalid'' floating-point exception.
+<li> csinh(+0 + iNaN) returns (+-)0 + iNaN (where the sign of the real part of the result is
+ unspecified).
+<!--page 489 -->
+<li> csinh(x + i (inf)) returns NaN + iNaN and raises the ''invalid'' floating-point
+ exception, for positive finite x.
+<li> csinh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for finite nonzero x.
+<li> csinh(+(inf) + i0) returns +(inf) + i0.
+<li> csinh(+(inf) + iy) returns +(inf) cis(y), for positive finite y.
+<li> csinh(+(inf) + i (inf)) returns (+-)(inf) + iNaN (where the sign of the real part of the result is
+ unspecified) and raises the ''invalid'' floating-point exception.
+<li> csinh(+(inf) + iNaN) returns (+-)(inf) + iNaN (where the sign of the real part of the result
+ is unspecified).
+<li> csinh(NaN + i0) returns NaN + i0.
+<li> csinh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for all nonzero numbers y.
+<li> csinh(NaN + iNaN) returns NaN + iNaN.
+</ul>
+
+<h5><a name="G.6.2.6" href="#G.6.2.6">G.6.2.6 The ctanh functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> ctanh(conj(z)) = conj(ctanh(z))and ctanh is odd.
+<li> ctanh(+0 + i0) returns +0 + i0.
+<li> ctanh(x + i (inf)) returns NaN + iNaN and raises the ''invalid'' floating-point
+ exception, for finite x.
+<li> ctanh(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for finite x.
+<li> ctanh(+(inf) + iy) returns 1 + i0 sin(2y), for positive-signed finite y.
+<li> ctanh(+(inf) + i (inf)) returns 1 (+-) i0 (where the sign of the imaginary part of the result
+ is unspecified).
+<li> ctanh(+(inf) + iNaN) returns 1 (+-) i0 (where the sign of the imaginary part of the
+ result is unspecified).
+<li> ctanh(NaN + i0) returns NaN + i0.
+<li> ctanh(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for all nonzero numbers y.
+<li> ctanh(NaN + iNaN) returns NaN + iNaN.
+<!--page 490 -->
+</ul>
+
+<h4><a name="G.6.3" href="#G.6.3">G.6.3 Exponential and logarithmic functions</a></h4>
+
+<h5><a name="G.6.3.1" href="#G.6.3.1">G.6.3.1 The cexp functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> cexp(conj(z)) = conj(cexp(z)).
+<li> cexp((+-)0 + i0) returns 1 + i0.
+<li> cexp(x + i (inf)) returns NaN + iNaN and raises the ''invalid'' floating-point
+ exception, for finite x.
+<li> cexp(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for finite x.
+<li> cexp(+(inf) + i0) returns +(inf) + i0.
+<li> cexp(-(inf) + iy) returns +0 cis(y), for finite y.
+<li> cexp(+(inf) + iy) returns +(inf) cis(y), for finite nonzero y.
+<li> cexp(-(inf) + i (inf)) returns (+-)0 (+-) i0 (where the signs of the real and imaginary parts of
+ the result are unspecified).
+<li> cexp(+(inf) + i (inf)) returns (+-)(inf) + iNaN and raises the ''invalid'' floating-point
+ exception (where the sign of the real part of the result is unspecified).
+<li> cexp(-(inf) + iNaN) returns (+-)0 (+-) i0 (where the signs of the real and imaginary parts
+ of the result are unspecified).
+<li> cexp(+(inf) + iNaN) returns (+-)(inf) + iNaN (where the sign of the real part of the result
+ is unspecified).
+<li> cexp(NaN + i0) returns NaN + i0.
+<li> cexp(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for all nonzero numbers y.
+<li> cexp(NaN + iNaN) returns NaN + iNaN.
+</ul>
+
+<h5><a name="G.6.3.2" href="#G.6.3.2">G.6.3.2 The clog functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> clog(conj(z)) = conj(clog(z)).
+<li> clog(-0 + i0) returns -(inf) + ipi and raises the ''divide-by-zero'' floating-point
+ exception.
+<li> clog(+0 + i0) returns -(inf) + i0 and raises the ''divide-by-zero'' floating-point
+ exception.
+<li> clog(x + i (inf)) returns +(inf) + ipi /2, for finite x.
+<li> clog(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for finite x.
+<!--page 491 -->
+<li> clog(-(inf) + iy) returns +(inf) + ipi , for finite positive-signed y.
+<li> clog(+(inf) + iy) returns +(inf) + i0, for finite positive-signed y.
+<li> clog(-(inf) + i (inf)) returns +(inf) + i3pi /4.
+<li> clog(+(inf) + i (inf)) returns +(inf) + ipi /4.
+<li> clog((+-)(inf) + iNaN) returns +(inf) + iNaN.
+<li> clog(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for finite y.
+<li> clog(NaN + i (inf)) returns +(inf) + iNaN.
+<li> clog(NaN + iNaN) returns NaN + iNaN.
+</ul>
+
+<h4><a name="G.6.4" href="#G.6.4">G.6.4 Power and absolute-value functions</a></h4>
+
+<h5><a name="G.6.4.1" href="#G.6.4.1">G.6.4.1 The cpow functions</a></h5>
+<p><!--para 1 -->
+ The cpow functions raise floating-point exceptions if appropriate for the calculation of
+ the parts of the result, and may raise spurious exceptions.<sup><a href="#note327"><b>327)</b></a></sup>
+
+<p><b>Footnotes</b>
+<p><small><a name="note327" href="#note327">327)</a> This allows cpow( z , c ) to be implemented as cexp(c clog( z )) without precluding
+ implementations that treat special cases more carefully.
+</small>
+
+<h5><a name="G.6.4.2" href="#G.6.4.2">G.6.4.2 The csqrt functions</a></h5>
+<p><!--para 1 -->
+<ul>
+<li> csqrt(conj(z)) = conj(csqrt(z)).
+<li> csqrt((+-)0 + i0) returns +0 + i0.
+<li> csqrt(x + i (inf)) returns +(inf) + i (inf), for all x (including NaN).
+<li> csqrt(x + iNaN) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for finite x.
+<li> csqrt(-(inf) + iy) returns +0 + i (inf), for finite positive-signed y.
+<li> csqrt(+(inf) + iy) returns +(inf) + i0, for finite positive-signed y.
+<li> csqrt(-(inf) + iNaN) returns NaN (+-) i (inf) (where the sign of the imaginary part of the
+ result is unspecified).
+<li> csqrt(+(inf) + iNaN) returns +(inf) + iNaN.
+<li> csqrt(NaN + iy) returns NaN + iNaN and optionally raises the ''invalid'' floating-
+ point exception, for finite y.
+<li> csqrt(NaN + iNaN) returns NaN + iNaN.
+
+
+
+
+<!--page 492 -->
+</ul>
+
+<h3><a name="G.7" href="#G.7">G.7 Type-generic math <tgmath.h></a></h3>
+<p><!--para 1 -->
+ Type-generic macros that accept complex arguments also accept imaginary arguments. If
+ an argument is imaginary, the macro expands to an expression whose type is real,
+ imaginary, or complex, as appropriate for the particular function: if the argument is
+ imaginary, then the types of cos, cosh, fabs, carg, cimag, and creal are real; the
+ types of sin, tan, sinh, tanh, asin, atan, asinh, and atanh are imaginary; and
+ the types of the others are complex.
+<p><!--para 2 -->
+ Given an imaginary argument, each of the type-generic macros cos, sin, tan, cosh,
+ sinh, tanh, asin, atan, asinh, atanh is specified by a formula in terms of real
+ functions:
+<!--page 493 -->
+<pre>
+ cos(iy) = cosh(y)
+ sin(iy) = i sinh(y)
+ tan(iy) = i tanh(y)
+ cosh(iy) = cos(y)
+ sinh(iy) = i sin(y)
+ tanh(iy) = i tan(y)
+ asin(iy) = i asinh(y)
+ atan(iy) = i atanh(y)
+ asinh(iy) = i asin(y)
+ atanh(iy) = i atan(y)
+</pre>
+
+<h2><a name="H" href="#H">Annex H</a></h2>
+<pre>
+ (informative)
+ Language independent arithmetic
+</pre>
+
+<h3><a name="H.1" href="#H.1">H.1 Introduction</a></h3>
+<p><!--para 1 -->
+ This annex documents the extent to which the C language supports the ISO/IEC 10967-1
+ standard for language-independent arithmetic (LIA-1). LIA-1 is more general than
+ IEC 60559 (<a href="#F">annex F</a>) in that it covers integer and diverse floating-point arithmetics.
+
+<h3><a name="H.2" href="#H.2">H.2 Types</a></h3>
+<p><!--para 1 -->
+ The relevant C arithmetic types meet the requirements of LIA-1 types if an
+ implementation adds notification of exceptional arithmetic operations and meets the 1
+ unit in the last place (ULP) accuracy requirement (LIA-1 subclause <a href="#5.2.8">5.2.8</a>).
+
+<h4><a name="H.2.1" href="#H.2.1">H.2.1 Boolean type</a></h4>
+<p><!--para 1 -->
+ The LIA-1 data type Boolean is implemented by the C data type bool with values of
+ true and false, all from <a href="#7.16"><stdbool.h></a>.
+
+<h4><a name="H.2.2" href="#H.2.2">H.2.2 Integer types</a></h4>
+<p><!--para 1 -->
+ The signed C integer types int, long int, long long int, and the corresponding
+ unsigned types are compatible with LIA-1. If an implementation adds support for the
+ LIA-1 exceptional values ''integer_overflow'' and ''undefined'', then those types are
+ LIA-1 conformant types. C's unsigned integer types are ''modulo'' in the LIA-1 sense
+ in that overflows or out-of-bounds results silently wrap. An implementation that defines
+ signed integer types as also being modulo need not detect integer overflow, in which case,
+ only integer divide-by-zero need be detected.
+<p><!--para 2 -->
+ The parameters for the integer data types can be accessed by the following:
+ maxint INT_MAX, LONG_MAX, LLONG_MAX, UINT_MAX, ULONG_MAX,
+<pre>
+ ULLONG_MAX
+</pre>
+ minint INT_MIN, LONG_MIN, LLONG_MIN
+<p><!--para 3 -->
+ The parameter ''bounded'' is always true, and is not provided. The parameter ''minint''
+ is always 0 for the unsigned types, and is not provided for those types.
+<!--page 494 -->
+
+<h5><a name="H.2.2.1" href="#H.2.2.1">H.2.2.1 Integer operations</a></h5>
+<p><!--para 1 -->
+ The integer operations on integer types are the following:
+ addI x + y
+ subI x - y
+ mulI x * y
+ divI, divtI x / y
+ remI, remtI x % y
+ negI -x
+ absI abs(x), labs(x), llabs(x)
+ eqI x == y
+ neqI x != y
+ lssI x < y
+ leqI x <= y
+ gtrI x > y
+ geqI x >= y
+ where x and y are expressions of the same integer type.
+
+<h4><a name="H.2.3" href="#H.2.3">H.2.3 Floating-point types</a></h4>
+<p><!--para 1 -->
+ The C floating-point types float, double, and long double are compatible with
+ LIA-1. If an implementation adds support for the LIA-1 exceptional values
+ ''underflow'', ''floating_overflow'', and ''"undefined'', then those types are conformant
+ with LIA-1. An implementation that uses IEC 60559 floating-point formats and
+ operations (see <a href="#F">annex F</a>) along with IEC 60559 status flags and traps has LIA-1
+ conformant types.
+
+<h5><a name="H.2.3.1" href="#H.2.3.1">H.2.3.1 Floating-point parameters</a></h5>
+<p><!--para 1 -->
+ The parameters for a floating point data type can be accessed by the following:
+ r FLT_RADIX
+ p FLT_MANT_DIG, DBL_MANT_DIG, LDBL_MANT_DIG
+ emax FLT_MAX_EXP, DBL_MAX_EXP, LDBL_MAX_EXP
+ emin FLT_MIN_EXP, DBL_MIN_EXP, LDBL_MIN_EXP
+<p><!--para 2 -->
+ The derived constants for the floating point types are accessed by the following:
+<!--page 495 -->
+ fmax FLT_MAX, DBL_MAX, LDBL_MAX
+ fminN FLT_MIN, DBL_MIN, LDBL_MIN
+ epsilon FLT_EPSILON, DBL_EPSILON, LDBL_EPSILON
+ rnd_style FLT_ROUNDS
+
+<h5><a name="H.2.3.2" href="#H.2.3.2">H.2.3.2 Floating-point operations</a></h5>
+<p><!--para 1 -->
+ The floating-point operations on floating-point types are the following:
+ addF x + y
+ subF x - y
+ mulF x * y
+ divF x / y
+ negF -x
+ absF fabsf(x), fabs(x), fabsl(x)
+ exponentF 1.f+logbf(x), 1.0+logb(x), 1.L+logbl(x)
+ scaleF scalbnf(x, n), scalbn(x, n), scalbnl(x, n),
+<pre>
+ scalblnf(x, li), scalbln(x, li), scalblnl(x, li)
+</pre>
+ intpartF modff(x, &y), modf(x, &y), modfl(x, &y)
+ fractpartF modff(x, &y), modf(x, &y), modfl(x, &y)
+ eqF x == y
+ neqF x != y
+ lssF x < y
+ leqF x <= y
+ gtrF x > y
+ geqF x >= y
+ where x and y are expressions of the same floating point type, n is of type int, and li
+ is of type long int.
+
+<h5><a name="H.2.3.3" href="#H.2.3.3">H.2.3.3 Rounding styles</a></h5>
+<p><!--para 1 -->
+ The C Standard requires all floating types to use the same radix and rounding style, so
+ that only one identifier for each is provided to map to LIA-1.
+<p><!--para 2 -->
+ The FLT_ROUNDS parameter can be used to indicate the LIA-1 rounding styles:
+ truncate FLT_ROUNDS == 0
+<!--page 496 -->
+ nearest FLT_ROUNDS == 1
+ other FLT_ROUNDS != 0 && FLT_ROUNDS != 1
+ provided that an implementation extends FLT_ROUNDS to cover the rounding style used
+ in all relevant LIA-1 operations, not just addition as in C.
+
+<h4><a name="H.2.4" href="#H.2.4">H.2.4 Type conversions</a></h4>
+<p><!--para 1 -->
+ The LIA-1 type conversions are the following type casts:
+ cvtI' -> I (int)i, (long int)i, (long long int)i,
+<pre>
+ (unsigned int)i, (unsigned long int)i,
+ (unsigned long long int)i
+</pre>
+ cvtF -> I (int)x, (long int)x, (long long int)x,
+<pre>
+ (unsigned int)x, (unsigned long int)x,
+ (unsigned long long int)x
+</pre>
+ cvtI -> F (float)i, (double)i, (long double)i
+ cvtF' -> F (float)x, (double)x, (long double)x
+<p><!--para 2 -->
+ In the above conversions from floating to integer, the use of (cast)x can be replaced with
+ (cast)round(x), (cast)rint(x), (cast)nearbyint(x), (cast)trunc(x),
+ (cast)ceil(x), or (cast)floor(x). In addition, C's floating-point to integer
+ conversion functions, lrint(), llrint(), lround(), and llround(), can be
+ used. They all meet LIA-1's requirements on floating to integer rounding for in-range
+ values. For out-of-range values, the conversions shall silently wrap for the modulo types.
+<p><!--para 3 -->
+ The fmod() function is useful for doing silent wrapping to unsigned integer types, e.g.,
+ fmod( fabs(rint(x)), 65536.0 ) or (0.0 <= (y = fmod( rint(x),
+ 65536.0 )) ? y : 65536.0 + y) will compute an integer value in the range 0.0
+ to 65535.0 which can then be cast to unsigned short int. But, the
+ remainder() function is not useful for doing silent wrapping to signed integer types,
+ e.g., remainder( rint(x), 65536.0 ) will compute an integer value in the
+ range -32767.0 to +32768.0 which is not, in general, in the range of signed short
+ int.
+<p><!--para 4 -->
+ C's conversions (casts) from floating-point to floating-point can meet LIA-1
+ requirements if an implementation uses round-to-nearest (IEC 60559 default).
+<p><!--para 5 -->
+ C's conversions (casts) from integer to floating-point can meet LIA-1 requirements if an
+ implementation uses round-to-nearest.
+<!--page 497 -->
+
+<h3><a name="H.3" href="#H.3">H.3 Notification</a></h3>
+<p><!--para 1 -->
+ Notification is the process by which a user or program is informed that an exceptional
+ arithmetic operation has occurred. C's operations are compatible with LIA-1 in that C
+ allows an implementation to cause a notification to occur when any arithmetic operation
+ returns an exceptional value as defined in LIA-1 clause 5.
+
+<h4><a name="H.3.1" href="#H.3.1">H.3.1 Notification alternatives</a></h4>
+<p><!--para 1 -->
+ LIA-1 requires at least the following two alternatives for handling of notifications:
+ setting indicators or trap-and-terminate. LIA-1 allows a third alternative: trap-and-
+ resume.
+<p><!--para 2 -->
+ An implementation need only support a given notification alternative for the entire
+ program. An implementation may support the ability to switch between notification
+ alternatives during execution, but is not required to do so. An implementation can
+ provide separate selection for each kind of notification, but this is not required.
+<p><!--para 3 -->
+ C allows an implementation to provide notification. C's SIGFPE (for traps) and
+ FE_INVALID, FE_DIVBYZERO, FE_OVERFLOW, FE_UNDERFLOW (for indicators)
+ can provide LIA-1 notification.
+<p><!--para 4 -->
+ C's signal handlers are compatible with LIA-1. Default handling of SIGFPE can
+ provide trap-and-terminate behavior, except for those LIA-1 operations implemented by
+ math library function calls. User-provided signal handlers for SIGFPE allow for trap-
+ and-resume behavior with the same constraint.
+
+<h5><a name="H.3.1.1" href="#H.3.1.1">H.3.1.1 Indicators</a></h5>
+<p><!--para 1 -->
+ C's <a href="#7.6"><fenv.h></a> status flags are compatible with the LIA-1 indicators.
+<p><!--para 2 -->
+ The following mapping is for floating-point types:
+ undefined FE_INVALID, FE_DIVBYZERO
+ floating_overflow FE_OVERFLOW
+ underflow FE_UNDERFLOW
+<p><!--para 3 -->
+ The floating-point indicator interrogation and manipulation operations are:
+ set_indicators feraiseexcept(i)
+ clear_indicators feclearexcept(i)
+ test_indicators fetestexcept(i)
+ current_indicators fetestexcept(FE_ALL_EXCEPT)
+ where i is an expression of type int representing a subset of the LIA-1 indicators.
+<p><!--para 4 -->
+ C allows an implementation to provide the following LIA-1 required behavior: at
+ program termination if any indicator is set the implementation shall send an unambiguous
+<!--page 498 -->
+ and ''hard to ignore'' message (see LIA-1 subclause <a href="#6.1.2">6.1.2</a>)
+<p><!--para 5 -->
+ LIA-1 does not make the distinction between floating-point and integer for ''undefined''.
+ This documentation makes that distinction because <a href="#7.6"><fenv.h></a> covers only the floating-
+ point indicators.
+
+<h5><a name="H.3.1.2" href="#H.3.1.2">H.3.1.2 Traps</a></h5>
+<p><!--para 1 -->
+ C is compatible with LIA-1's trap requirements for arithmetic operations, but not for
+ math library functions (which are not permitted to generate any externally visible
+ exceptional conditions). An implementation can provide an alternative of notification
+ through termination with a ''hard-to-ignore'' message (see LIA-1 subclause <a href="#6.1.3">6.1.3</a>).
+<p><!--para 2 -->
+ LIA-1 does not require that traps be precise.
+<p><!--para 3 -->
+ C does require that SIGFPE be the signal corresponding to arithmetic exceptions, if there
+ is any signal raised for them.
+<p><!--para 4 -->
+ C supports signal handlers for SIGFPE and allows trapping of arithmetic exceptions.
+ When arithmetic exceptions do trap, C's signal-handler mechanism allows trap-and-
+ terminate (either default implementation behavior or user replacement for it) or trap-and-
+ resume, at the programmer's option.
+<!--page 499 -->
+
+<h2><a name="I" href="#I">Annex I</a></h2>
+<pre>
+ (informative)
+ Common warnings
+</pre>
+<p><!--para 1 -->
+ An implementation may generate warnings in many situations, none of which are
+ specified as part of this International Standard. The following are a few of the more
+ common situations.
+<p><!--para 2 -->
+<ul>
+<li> A new struct or union type appears in a function prototype (<a href="#6.2.1">6.2.1</a>, <a href="#6.7.2.3">6.7.2.3</a>).
+<li> A block with initialization of an object that has automatic storage duration is jumped
+ into (<a href="#6.2.4">6.2.4</a>).
+<li> An implicit narrowing conversion is encountered, such as the assignment of a long
+ int or a double to an int, or a pointer to void to a pointer to any type other than
+ a character type (<a href="#6.3">6.3</a>).
+<li> A hexadecimal floating constant cannot be represented exactly in its evaluation format
+ (<a href="#6.4.4.2">6.4.4.2</a>).
+<li> An integer character constant includes more than one character or a wide character
+ constant includes more than one multibyte character (<a href="#6.4.4.4">6.4.4.4</a>).
+<li> The characters /* are found in a comment (<a href="#6.4.7">6.4.7</a>).
+<li> An ''unordered'' binary operator (not comma, &&, or ||) contains a side effect to an
+ lvalue in one operand, and a side effect to, or an access to the value of, the identical
+ lvalue in the other operand (<a href="#6.5">6.5</a>).
+<li> A function is called but no prototype has been supplied (<a href="#6.5.2.2">6.5.2.2</a>).
+<li> The arguments in a function call do not agree in number and type with those of the
+ parameters in a function definition that is not a prototype (<a href="#6.5.2.2">6.5.2.2</a>).
+<li> An object is defined but not used (<a href="#6.7">6.7</a>).
+<li> A value is given to an object of an enumerated type other than by assignment of an
+ enumeration constant that is a member of that type, or an enumeration object that has
+ the same type, or the value of a function that returns the same enumerated type
+ (<a href="#6.7.2.2">6.7.2.2</a>).
+<li> An aggregate has a partly bracketed initialization (<a href="#6.7.7">6.7.7</a>).
+<li> A statement cannot be reached (<a href="#6.8">6.8</a>).
+<li> A statement with no apparent effect is encountered (<a href="#6.8">6.8</a>).
+<li> A constant expression is used as the controlling expression of a selection statement
+ (<a href="#6.8.4">6.8.4</a>).
+<!--page 500 -->
+<li> An incorrectly formed preprocessing group is encountered while skipping a
+ preprocessing group (<a href="#6.10.1">6.10.1</a>).
+<li> An unrecognized #pragma directive is encountered (<a href="#6.10.6">6.10.6</a>).
+<!--page 501 -->
+</ul>
+
+<h2><a name="J" href="#J">Annex J</a></h2>
+<pre>
+ (informative)
+ Portability issues
+</pre>
+<p><!--para 1 -->
+ This annex collects some information about portability that appears in this International
+ Standard.
+
+<h3><a name="J.1" href="#J.1">J.1 Unspecified behavior</a></h3>
+<p><!--para 1 -->
+ The following are unspecified:
+<ul>
+<li> The manner and timing of static initialization (<a href="#5.1.2">5.1.2</a>).
+<li> The termination status returned to the hosted environment if the return type of main
+ is not compatible with int (<a href="#5.1.2.2.3">5.1.2.2.3</a>).
+<li> The behavior of the display device if a printing character is written when the active
+ position is at the final position of a line (<a href="#5.2.2">5.2.2</a>).
+<li> The behavior of the display device if a backspace character is written when the active
+ position is at the initial position of a line (<a href="#5.2.2">5.2.2</a>).
+<li> The behavior of the display device if a horizontal tab character is written when the
+ active position is at or past the last defined horizontal tabulation position (<a href="#5.2.2">5.2.2</a>).
+<li> The behavior of the display device if a vertical tab character is written when the active
+ position is at or past the last defined vertical tabulation position (<a href="#5.2.2">5.2.2</a>).
+<li> How an extended source character that does not correspond to a universal character
+ name counts toward the significant initial characters in an external identifier (<a href="#5.2.4.1">5.2.4.1</a>).
+<li> Many aspects of the representations of types (<a href="#6.2.6">6.2.6</a>).
+<li> The value of padding bytes when storing values in structures or unions (<a href="#6.2.6.1">6.2.6.1</a>).
+<li> The value of a union member other than the last one stored into (<a href="#6.2.6.1">6.2.6.1</a>).
+<li> The representation used when storing a value in an object that has more than one
+ object representation for that value (<a href="#6.2.6.1">6.2.6.1</a>).
+<li> The values of any padding bits in integer representations (<a href="#6.2.6.2">6.2.6.2</a>).
+<li> Whether certain operators can generate negative zeros and whether a negative zero
+ becomes a normal zero when stored in an object (<a href="#6.2.6.2">6.2.6.2</a>).
+<li> Whether two string literals result in distinct arrays (<a href="#6.4.5">6.4.5</a>).
+<li> The order in which subexpressions are evaluated and the order in which side effects
+ take place, except as specified for the function-call (), &&, ||, ?:, and comma
+ operators (<a href="#6.5">6.5</a>).
+<!--page 502 -->
+<li> The order in which the function designator, arguments, and subexpressions within the
+ arguments are evaluated in a function call (<a href="#6.5.2.2">6.5.2.2</a>).
+<li> The order of side effects among compound literal initialization list expressions
+ (<a href="#6.5.2.5">6.5.2.5</a>).
+<li> The order in which the operands of an assignment operator are evaluated (<a href="#6.5.16">6.5.16</a>).
+<li> The alignment of the addressable storage unit allocated to hold a bit-field (<a href="#6.7.2.1">6.7.2.1</a>).
+<li> Whether a call to an inline function uses the inline definition or the external definition
+ of the function (<a href="#6.7.4">6.7.4</a>).
+<li> Whether or not a size expression is evaluated when it is part of the operand of a
+ sizeof operator and changing the value of the size expression would not affect the
+ result of the operator (<a href="#6.7.5.2">6.7.5.2</a>).
+<li> The order in which any side effects occur among the initialization list expressions in
+ an initializer (<a href="#6.7.8">6.7.8</a>).
+<li> The layout of storage for function parameters (<a href="#6.9.1">6.9.1</a>).
+<li> When a fully expanded macro replacement list contains a function-like macro name
+ as its last preprocessing token and the next preprocessing token from the source file is
+ a (, and the fully expanded replacement of that macro ends with the name of the first
+ macro and the next preprocessing token from the source file is again a (, whether that
+ is considered a nested replacement (<a href="#6.10.3">6.10.3</a>).
+<li> The order in which # and ## operations are evaluated during macro substitution
+ (<a href="#6.10.3.2">6.10.3.2</a>, <a href="#6.10.3.3">6.10.3.3</a>).
+<li> Whether errno is a macro or an identifier with external linkage (<a href="#7.5">7.5</a>).
+<li> The state of the floating-point status flags when execution passes from a part of the
+ program translated with FENV_ACCESS ''off'' to a part translated with
+ FENV_ACCESS ''on'' (<a href="#7.6.1">7.6.1</a>).
+<li> The order in which feraiseexcept raises floating-point exceptions, except as
+ stated in <a href="#F.7.6">F.7.6</a> (<a href="#7.6.2.3">7.6.2.3</a>).
+<li> Whether math_errhandling is a macro or an identifier with external linkage
+ (<a href="#7.12">7.12</a>).
+<li> The results of the frexp functions when the specified value is not a floating-point
+ number (<a href="#7.12.6.4">7.12.6.4</a>).
+<li> The numeric result of the ilogb functions when the correct value is outside the
+ range of the return type (<a href="#7.12.6.5">7.12.6.5</a>, <a href="#F.9.3.5">F.9.3.5</a>).
+<li> The result of rounding when the value is out of range (<a href="#7.12.9.5">7.12.9.5</a>, <a href="#7.12.9.7">7.12.9.7</a>, <a href="#F.9.6.5">F.9.6.5</a>).
+<!--page 503 -->
+<li> The value stored by the remquo functions in the object pointed to by quo when y is
+ zero (<a href="#7.12.10.3">7.12.10.3</a>).
+<li> Whether setjmp is a macro or an identifier with external linkage (<a href="#7.13">7.13</a>).
+<li> Whether va_copy and va_end are macros or identifiers with external linkage
+ (<a href="#7.15.1">7.15.1</a>).
+<li> The hexadecimal digit before the decimal point when a non-normalized floating-point
+ number is printed with an a or A conversion specifier (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
+<li> The value of the file position indicator after a successful call to the ungetc function
+ for a text stream, or the ungetwc function for any stream, until all pushed-back
+ characters are read or discarded (<a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.24.3.10">7.24.3.10</a>).
+<li> The details of the value stored by the fgetpos function (<a href="#7.19.9.1">7.19.9.1</a>).
+<li> The details of the value returned by the ftell function for a text stream (<a href="#7.19.9.4">7.19.9.4</a>).
+<li> Whether the strtod, strtof, strtold, wcstod, wcstof, and wcstold
+ functions convert a minus-signed sequence to a negative number directly or by
+ negating the value resulting from converting the corresponding unsigned sequence
+ (<a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>).
+<li> The order and contiguity of storage allocated by successive calls to the calloc,
+ malloc, and realloc functions (<a href="#7.20.3">7.20.3</a>).
+<li> The amount of storage allocated by a successful call to the calloc, malloc, or
+ realloc function when 0 bytes was requested (<a href="#7.20.3">7.20.3</a>).
+<li> Which of two elements that compare as equal is matched by the bsearch function
+ (<a href="#7.20.5.1">7.20.5.1</a>).
+<li> The order of two elements that compare as equal in an array sorted by the qsort
+ function (<a href="#7.20.5.2">7.20.5.2</a>).
+<li> The encoding of the calendar time returned by the time function (<a href="#7.23.2.4">7.23.2.4</a>).
+<li> The characters stored by the strftime or wcsftime function if any of the time
+ values being converted is outside the normal range (<a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.5.1">7.24.5.1</a>).
+<li> The conversion state after an encoding error occurs (<a href="#7.24.6.3.2">7.24.6.3.2</a>, <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4.1">7.24.6.4.1</a>,
+ <a href="#7.24.6.4.2">7.24.6.4.2</a>,
+<li> The resulting value when the ''invalid'' floating-point exception is raised during
+ IEC 60559 floating to integer conversion (<a href="#F.4">F.4</a>).
+<li> Whether conversion of non-integer IEC 60559 floating values to integer raises the
+ ''inexact'' floating-point exception (<a href="#F.4">F.4</a>).
+<!--page 504 -->
+<li> Whether or when library functions in <a href="#7.12"><math.h></a> raise the ''inexact'' floating-point
+ exception in an IEC 60559 conformant implementation (<a href="#F.9">F.9</a>).
+<li> Whether or when library functions in <a href="#7.12"><math.h></a> raise an undeserved ''underflow''
+ floating-point exception in an IEC 60559 conformant implementation (<a href="#F.9">F.9</a>).
+<li> The exponent value stored by frexp for a NaN or infinity (<a href="#F.9.3.4">F.9.3.4</a>).
+<li> The numeric result returned by the lrint, llrint, lround, and llround
+ functions if the rounded value is outside the range of the return type (<a href="#F.9.6.5">F.9.6.5</a>, <a href="#F.9.6.7">F.9.6.7</a>).
+<li> The sign of one part of the complex result of several math functions for certain
+ exceptional values in IEC 60559 compatible implementations (<a href="#G.6.1.1">G.6.1.1</a>, <a href="#G.6.2.2">G.6.2.2</a>,
+ <a href="#G.6.2.3">G.6.2.3</a>, <a href="#G.6.2.4">G.6.2.4</a>, <a href="#G.6.2.5">G.6.2.5</a>, <a href="#G.6.2.6">G.6.2.6</a>, <a href="#G.6.3.1">G.6.3.1</a>, <a href="#G.6.4.2">G.6.4.2</a>).
+</ul>
+
+<h3><a name="J.2" href="#J.2">J.2 Undefined behavior</a></h3>
+<p><!--para 1 -->
+ The behavior is undefined in the following circumstances:
+<ul>
+<li> A ''shall'' or ''shall not'' requirement that appears outside of a constraint is violated
+ (clause 4).
+<li> A nonempty source file does not end in a new-line character which is not immediately
+ preceded by a backslash character or ends in a partial preprocessing token or
+ comment (<a href="#5.1.1.2">5.1.1.2</a>).
+<li> Token concatenation produces a character sequence matching the syntax of a
+ universal character name (<a href="#5.1.1.2">5.1.1.2</a>).
+<li> A program in a hosted environment does not define a function named main using one
+ of the specified forms (<a href="#5.1.2.2.1">5.1.2.2.1</a>).
+<li> A character not in the basic source character set is encountered in a source file, except
+ in an identifier, a character constant, a string literal, a header name, a comment, or a
+ preprocessing token that is never converted to a token (<a href="#5.2.1">5.2.1</a>).
+<li> An identifier, comment, string literal, character constant, or header name contains an
+ invalid multibyte character or does not begin and end in the initial shift state (<a href="#5.2.1.2">5.2.1.2</a>).
+<li> The same identifier has both internal and external linkage in the same translation unit
+ (<a href="#6.2.2">6.2.2</a>).
+<li> An object is referred to outside of its lifetime (<a href="#6.2.4">6.2.4</a>).
+<li> The value of a pointer to an object whose lifetime has ended is used (<a href="#6.2.4">6.2.4</a>).
+<li> The value of an object with automatic storage duration is used while it is
+ indeterminate (<a href="#6.2.4">6.2.4</a>, <a href="#6.7.8">6.7.8</a>, <a href="#6.8">6.8</a>).
+<li> A trap representation is read by an lvalue expression that does not have character type
+ (<a href="#6.2.6.1">6.2.6.1</a>).
+<!--page 505 -->
+<li> A trap representation is produced by a side effect that modifies any part of the object
+ using an lvalue expression that does not have character type (<a href="#6.2.6.1">6.2.6.1</a>).
+<li> The arguments to certain operators are such that could produce a negative zero result,
+ but the implementation does not support negative zeros (<a href="#6.2.6.2">6.2.6.2</a>).
+<li> Two declarations of the same object or function specify types that are not compatible
+ (<a href="#6.2.7">6.2.7</a>).
+<li> Conversion to or from an integer type produces a value outside the range that can be
+ represented (<a href="#6.3.1.4">6.3.1.4</a>).
+<li> Demotion of one real floating type to another produces a value outside the range that
+ can be represented (<a href="#6.3.1.5">6.3.1.5</a>).
+<li> An lvalue does not designate an object when evaluated (<a href="#6.3.2.1">6.3.2.1</a>).
+<li> A non-array lvalue with an incomplete type is used in a context that requires the value
+ of the designated object (<a href="#6.3.2.1">6.3.2.1</a>).
+<li> An lvalue having array type is converted to a pointer to the initial element of the
+ array, and the array object has register storage class (<a href="#6.3.2.1">6.3.2.1</a>).
+<li> An attempt is made to use the value of a void expression, or an implicit or explicit
+ conversion (except to void) is applied to a void expression (<a href="#6.3.2.2">6.3.2.2</a>).
+<li> Conversion of a pointer to an integer type produces a value outside the range that can
+ be represented (<a href="#6.3.2.3">6.3.2.3</a>).
+<li> Conversion between two pointer types produces a result that is incorrectly aligned
+ (<a href="#6.3.2.3">6.3.2.3</a>).
+<li> A pointer is used to call a function whose type is not compatible with the pointed-to
+ type (<a href="#6.3.2.3">6.3.2.3</a>).
+<li> An unmatched ' or " character is encountered on a logical source line during
+ tokenization (<a href="#6.4">6.4</a>).
+<li> A reserved keyword token is used in translation phase 7 or 8 for some purpose other
+ than as a keyword (<a href="#6.4.1">6.4.1</a>).
+<li> A universal character name in an identifier does not designate a character whose
+ encoding falls into one of the specified ranges (<a href="#6.4.2.1">6.4.2.1</a>).
+<li> The initial character of an identifier is a universal character name designating a digit
+ (<a href="#6.4.2.1">6.4.2.1</a>).
+<li> Two identifiers differ only in nonsignificant characters (<a href="#6.4.2.1">6.4.2.1</a>).
+<li> The identifier __func__ is explicitly declared (<a href="#6.4.2.2">6.4.2.2</a>).
+<!--page 506 -->
+<li> The program attempts to modify a string literal (<a href="#6.4.5">6.4.5</a>).
+<li> The characters ', \, ", //, or /* occur in the sequence between the < and >
+ delimiters, or the characters ', \, //, or /* occur in the sequence between the "
+ delimiters, in a header name preprocessing token (<a href="#6.4.7">6.4.7</a>).
+<li> Between two sequence points, an object is modified more than once, or is modified
+ and the prior value is read other than to determine the value to be stored (<a href="#6.5">6.5</a>).
+<li> An exceptional condition occurs during the evaluation of an expression (<a href="#6.5">6.5</a>).
+<li> An object has its stored value accessed other than by an lvalue of an allowable type
+ (<a href="#6.5">6.5</a>).
+<li> An attempt is made to modify the result of a function call, a conditional operator, an
+ assignment operator, or a comma operator, or to access it after the next sequence
+ point (<a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.5.15">6.5.15</a>, <a href="#6.5.16">6.5.16</a>, <a href="#6.5.17">6.5.17</a>).
+<li> For a call to a function without a function prototype in scope, the number of
+ arguments does not equal the number of parameters (<a href="#6.5.2.2">6.5.2.2</a>).
+<li> For call to a function without a function prototype in scope where the function is
+ defined with a function prototype, either the prototype ends with an ellipsis or the
+ types of the arguments after promotion are not compatible with the types of the
+ parameters (<a href="#6.5.2.2">6.5.2.2</a>).
+<li> For a call to a function without a function prototype in scope where the function is not
+ defined with a function prototype, the types of the arguments after promotion are not
+ compatible with those of the parameters after promotion (with certain exceptions)
+ (<a href="#6.5.2.2">6.5.2.2</a>).
+<li> A function is defined with a type that is not compatible with the type (of the
+ expression) pointed to by the expression that denotes the called function (<a href="#6.5.2.2">6.5.2.2</a>).
+<li> The operand of the unary * operator has an invalid value (<a href="#6.5.3.2">6.5.3.2</a>).
+<li> A pointer is converted to other than an integer or pointer type (<a href="#6.5.4">6.5.4</a>).
+<li> The value of the second operand of the / or % operator is zero (<a href="#6.5.5">6.5.5</a>).
+<li> Addition or subtraction of a pointer into, or just beyond, an array object and an
+ integer type produces a result that does not point into, or just beyond, the same array
+ object (<a href="#6.5.6">6.5.6</a>).
+<li> Addition or subtraction of a pointer into, or just beyond, an array object and an
+ integer type produces a result that points just beyond the array object and is used as
+ the operand of a unary * operator that is evaluated (<a href="#6.5.6">6.5.6</a>).
+<li> Pointers that do not point into, or just beyond, the same array object are subtracted
+ (<a href="#6.5.6">6.5.6</a>).
+<!--page 507 -->
+<li> An array subscript is out of range, even if an object is apparently accessible with the
+ given subscript (as in the lvalue expression a[1][7] given the declaration int
+ a[4][5]) (<a href="#6.5.6">6.5.6</a>).
+<li> The result of subtracting two pointers is not representable in an object of type
+ ptrdiff_t (<a href="#6.5.6">6.5.6</a>).
+<li> An expression is shifted by a negative number or by an amount greater than or equal
+ to the width of the promoted expression (<a href="#6.5.7">6.5.7</a>).
+<li> An expression having signed promoted type is left-shifted and either the value of the
+ expression is negative or the result of shifting would be not be representable in the
+ promoted type (<a href="#6.5.7">6.5.7</a>).
+<li> Pointers that do not point to the same aggregate or union (nor just beyond the same
+ array object) are compared using relational operators (<a href="#6.5.8">6.5.8</a>).
+<li> An object is assigned to an inexactly overlapping object or to an exactly overlapping
+ object with incompatible type (<a href="#6.5.16.1">6.5.16.1</a>).
+<li> An expression that is required to be an integer constant expression does not have an
+ integer type; has operands that are not integer constants, enumeration constants,
+ character constants, sizeof expressions whose results are integer constants, or
+ immediately-cast floating constants; or contains casts (outside operands to sizeof
+ operators) other than conversions of arithmetic types to integer types (<a href="#6.6">6.6</a>).
+<li> A constant expression in an initializer is not, or does not evaluate to, one of the
+ following: an arithmetic constant expression, a null pointer constant, an address
+ constant, or an address constant for an object type plus or minus an integer constant
+ expression (<a href="#6.6">6.6</a>).
+<li> An arithmetic constant expression does not have arithmetic type; has operands that
+ are not integer constants, floating constants, enumeration constants, character
+ constants, or sizeof expressions; or contains casts (outside operands to sizeof
+ operators) other than conversions of arithmetic types to arithmetic types (<a href="#6.6">6.6</a>).
+<li> The value of an object is accessed by an array-subscript [], member-access . or ->,
+ address &, or indirection * operator or a pointer cast in creating an address constant
+ (<a href="#6.6">6.6</a>).
+<li> An identifier for an object is declared with no linkage and the type of the object is
+ incomplete after its declarator, or after its init-declarator if it has an initializer (<a href="#6.7">6.7</a>).
+<li> A function is declared at block scope with an explicit storage-class specifier other
+ than extern (<a href="#6.7.1">6.7.1</a>).
+<li> A structure or union is defined as containing no named members (<a href="#6.7.2.1">6.7.2.1</a>).
+<!--page 508 -->
+<li> An attempt is made to access, or generate a pointer to just past, a flexible array
+ member of a structure when the referenced object provides no elements for that array
+ (<a href="#6.7.2.1">6.7.2.1</a>).
+<li> When the complete type is needed, an incomplete structure or union type is not
+ completed in the same scope by another declaration of the tag that defines the content
+ (<a href="#6.7.2.3">6.7.2.3</a>).
+<li> An attempt is made to modify an object defined with a const-qualified type through
+ use of an lvalue with non-const-qualified type (<a href="#6.7.3">6.7.3</a>).
+<li> An attempt is made to refer to an object defined with a volatile-qualified type through
+ use of an lvalue with non-volatile-qualified type (<a href="#6.7.3">6.7.3</a>).
+<li> The specification of a function type includes any type qualifiers (<a href="#6.7.3">6.7.3</a>).
+<li> Two qualified types that are required to be compatible do not have the identically
+ qualified version of a compatible type (<a href="#6.7.3">6.7.3</a>).
+<li> An object which has been modified is accessed through a restrict-qualified pointer to
+ a const-qualified type, or through a restrict-qualified pointer and another pointer that
+ are not both based on the same object (<a href="#6.7.3.1">6.7.3.1</a>).
+<li> A restrict-qualified pointer is assigned a value based on another restricted pointer
+ whose associated block neither began execution before the block associated with this
+ pointer, nor ended before the assignment (<a href="#6.7.3.1">6.7.3.1</a>).
+<li> A function with external linkage is declared with an inline function specifier, but is
+ not also defined in the same translation unit (<a href="#6.7.4">6.7.4</a>).
+<li> Two pointer types that are required to be compatible are not identically qualified, or
+ are not pointers to compatible types (<a href="#6.7.5.1">6.7.5.1</a>).
+<li> The size expression in an array declaration is not a constant expression and evaluates
+ at program execution time to a nonpositive value (<a href="#6.7.5.2">6.7.5.2</a>).
+<li> In a context requiring two array types to be compatible, they do not have compatible
+ element types, or their size specifiers evaluate to unequal values (<a href="#6.7.5.2">6.7.5.2</a>).
+<li> A declaration of an array parameter includes the keyword static within the [ and
+ ] and the corresponding argument does not provide access to the first element of an
+ array with at least the specified number of elements (<a href="#6.7.5.3">6.7.5.3</a>).
+<li> A storage-class specifier or type qualifier modifies the keyword void as a function
+ parameter type list (<a href="#6.7.5.3">6.7.5.3</a>).
+<li> In a context requiring two function types to be compatible, they do not have
+ compatible return types, or their parameters disagree in use of the ellipsis terminator
+ or the number and type of parameters (after default argument promotion, when there
+ is no parameter type list or when one type is specified by a function definition with an
+<!--page 509 -->
+ identifier list) (<a href="#6.7.5.3">6.7.5.3</a>).
+<li> The value of an unnamed member of a structure or union is used (<a href="#6.7.8">6.7.8</a>).
+<li> The initializer for a scalar is neither a single expression nor a single expression
+ enclosed in braces (<a href="#6.7.8">6.7.8</a>).
+<li> The initializer for a structure or union object that has automatic storage duration is
+ neither an initializer list nor a single expression that has compatible structure or union
+ type (<a href="#6.7.8">6.7.8</a>).
+<li> The initializer for an aggregate or union, other than an array initialized by a string
+ literal, is not a brace-enclosed list of initializers for its elements or members (<a href="#6.7.8">6.7.8</a>).
+<li> An identifier with external linkage is used, but in the program there does not exist
+ exactly one external definition for the identifier, or the identifier is not used and there
+ exist multiple external definitions for the identifier (<a href="#6.9">6.9</a>).
+<li> A function definition includes an identifier list, but the types of the parameters are not
+ declared in a following declaration list (<a href="#6.9.1">6.9.1</a>).
+<li> An adjusted parameter type in a function definition is not an object type (<a href="#6.9.1">6.9.1</a>).
+<li> A function that accepts a variable number of arguments is defined without a
+ parameter type list that ends with the ellipsis notation (<a href="#6.9.1">6.9.1</a>).
+<li> The } that terminates a function is reached, and the value of the function call is used
+ by the caller (<a href="#6.9.1">6.9.1</a>).
+<li> An identifier for an object with internal linkage and an incomplete type is declared
+ with a tentative definition (<a href="#6.9.2">6.9.2</a>).
+<li> The token defined is generated during the expansion of a #if or #elif
+ preprocessing directive, or the use of the defined unary operator does not match
+ one of the two specified forms prior to macro replacement (<a href="#6.10.1">6.10.1</a>).
+<li> The #include preprocessing directive that results after expansion does not match
+ one of the two header name forms (<a href="#6.10.2">6.10.2</a>).
+<li> The character sequence in an #include preprocessing directive does not start with a
+ letter (<a href="#6.10.2">6.10.2</a>).
+<li> There are sequences of preprocessing tokens within the list of macro arguments that
+ would otherwise act as preprocessing directives (<a href="#6.10.3">6.10.3</a>).
+<li> The result of the preprocessing operator # is not a valid character string literal
+ (<a href="#6.10.3.2">6.10.3.2</a>).
+<li> The result of the preprocessing operator ## is not a valid preprocessing token
+ (<a href="#6.10.3.3">6.10.3.3</a>).
+<!--page 510 -->
+<li> The #line preprocessing directive that results after expansion does not match one of
+ the two well-defined forms, or its digit sequence specifies zero or a number greater
+ than 2147483647 (<a href="#6.10.4">6.10.4</a>).
+<li> A non-STDC #pragma preprocessing directive that is documented as causing
+ translation failure or some other form of undefined behavior is encountered (<a href="#6.10.6">6.10.6</a>).
+<li> A #pragma STDC preprocessing directive does not match one of the well-defined
+ forms (<a href="#6.10.6">6.10.6</a>).
+<li> The name of a predefined macro, or the identifier defined, is the subject of a
+ #define or #undef preprocessing directive (<a href="#6.10.8">6.10.8</a>).
+<li> An attempt is made to copy an object to an overlapping object by use of a library
+ function, other than as explicitly allowed (e.g., memmove) (clause 7).
+<li> A file with the same name as one of the standard headers, not provided as part of the
+ implementation, is placed in any of the standard places that are searched for included
+ source files (<a href="#7.1.2">7.1.2</a>).
+<li> A header is included within an external declaration or definition (<a href="#7.1.2">7.1.2</a>).
+<li> A function, object, type, or macro that is specified as being declared or defined by
+ some standard header is used before any header that declares or defines it is included
+ (<a href="#7.1.2">7.1.2</a>).
+<li> A standard header is included while a macro is defined with the same name as a
+ keyword (<a href="#7.1.2">7.1.2</a>).
+<li> The program attempts to declare a library function itself, rather than via a standard
+ header, but the declaration does not have external linkage (<a href="#7.1.2">7.1.2</a>).
+<li> The program declares or defines a reserved identifier, other than as allowed by <a href="#7.1.4">7.1.4</a>
+ (<a href="#7.1.3">7.1.3</a>).
+<li> The program removes the definition of a macro whose name begins with an
+ underscore and either an uppercase letter or another underscore (<a href="#7.1.3">7.1.3</a>).
+<li> An argument to a library function has an invalid value or a type not expected by a
+ function with variable number of arguments (<a href="#7.1.4">7.1.4</a>).
+<li> The pointer passed to a library function array parameter does not have a value such
+ that all address computations and object accesses are valid (<a href="#7.1.4">7.1.4</a>).
+<li> The macro definition of assert is suppressed in order to access an actual function
+ (<a href="#7.2">7.2</a>).
+<li> The argument to the assert macro does not have a scalar type (<a href="#7.2">7.2</a>).
+<li> The CX_LIMITED_RANGE, FENV_ACCESS, or FP_CONTRACT pragma is used in
+ any context other than outside all external declarations or preceding all explicit
+<!--page 511 -->
+ declarations and statements inside a compound statement (<a href="#7.3.4">7.3.4</a>, <a href="#7.6.1">7.6.1</a>, <a href="#7.12.2">7.12.2</a>).
+<li> The value of an argument to a character handling function is neither equal to the value
+ of EOF nor representable as an unsigned char (<a href="#7.4">7.4</a>).
+<li> A macro definition of errno is suppressed in order to access an actual object, or the
+ program defines an identifier with the name errno (<a href="#7.5">7.5</a>).
+<li> Part of the program tests floating-point status flags, sets floating-point control modes,
+ or runs under non-default mode settings, but was translated with the state for the
+ FENV_ACCESS pragma ''off'' (<a href="#7.6.1">7.6.1</a>).
+<li> The exception-mask argument for one of the functions that provide access to the
+ floating-point status flags has a nonzero value not obtained by bitwise OR of the
+ floating-point exception macros (<a href="#7.6.2">7.6.2</a>).
+<li> The fesetexceptflag function is used to set floating-point status flags that were
+ not specified in the call to the fegetexceptflag function that provided the value
+ of the corresponding fexcept_t object (<a href="#7.6.2.4">7.6.2.4</a>).
+<li> The argument to fesetenv or feupdateenv is neither an object set by a call to
+ fegetenv or feholdexcept, nor is it an environment macro (<a href="#7.6.4.3">7.6.4.3</a>, <a href="#7.6.4.4">7.6.4.4</a>).
+<li> The value of the result of an integer arithmetic or conversion function cannot be
+ represented (<a href="#7.8.2.1">7.8.2.1</a>, <a href="#7.8.2.2">7.8.2.2</a>, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.20.6.1">7.20.6.1</a>, <a href="#7.20.6.2">7.20.6.2</a>, <a href="#7.20.1">7.20.1</a>).
+<li> The program modifies the string pointed to by the value returned by the setlocale
+ function (<a href="#7.11.1.1">7.11.1.1</a>).
+<li> The program modifies the structure pointed to by the value returned by the
+ localeconv function (<a href="#7.11.2.1">7.11.2.1</a>).
+<li> A macro definition of math_errhandling is suppressed or the program defines
+ an identifier with the name math_errhandling (<a href="#7.12">7.12</a>).
+<li> An argument to a floating-point classification or comparison macro is not of real
+ floating type (<a href="#7.12.3">7.12.3</a>, <a href="#7.12.14">7.12.14</a>).
+<li> A macro definition of setjmp is suppressed in order to access an actual function, or
+ the program defines an external identifier with the name setjmp (<a href="#7.13">7.13</a>).
+<li> An invocation of the setjmp macro occurs other than in an allowed context
+ (<a href="#7.13.2.1">7.13.2.1</a>).
+<li> The longjmp function is invoked to restore a nonexistent environment (<a href="#7.13.2.1">7.13.2.1</a>).
+<li> After a longjmp, there is an attempt to access the value of an object of automatic
+ storage class with non-volatile-qualified type, local to the function containing the
+ invocation of the corresponding setjmp macro, that was changed between the
+ setjmp invocation and longjmp call (<a href="#7.13.2.1">7.13.2.1</a>).
+<!--page 512 -->
+<li> The program specifies an invalid pointer to a signal handler function (<a href="#7.14.1.1">7.14.1.1</a>).
+<li> A signal handler returns when the signal corresponded to a computational exception
+ (<a href="#7.14.1.1">7.14.1.1</a>).
+<li> A signal occurs as the result of calling the abort or raise function, and the signal
+ handler calls the raise function (<a href="#7.14.1.1">7.14.1.1</a>).
+<li> A signal occurs other than as the result of calling the abort or raise function, and
+ the signal handler refers to an object with static storage duration other than by
+ assigning a value to an object declared as volatile sig_atomic_t, or calls any
+ function in the standard library other than the abort function, the _Exit function,
+ or the signal function (for the same signal number) (<a href="#7.14.1.1">7.14.1.1</a>).
+<li> The value of errno is referred to after a signal occurred other than as the result of
+ calling the abort or raise function and the corresponding signal handler obtained
+ a SIG_ERR return from a call to the signal function (<a href="#7.14.1.1">7.14.1.1</a>).
+<li> A signal is generated by an asynchronous signal handler (<a href="#7.14.1.1">7.14.1.1</a>).
+<li> A function with a variable number of arguments attempts to access its varying
+ arguments other than through a properly declared and initialized va_list object, or
+ before the va_start macro is invoked (<a href="#7.15">7.15</a>, <a href="#7.15.1.1">7.15.1.1</a>, <a href="#7.15.1.4">7.15.1.4</a>).
+<li> The macro va_arg is invoked using the parameter ap that was passed to a function
+ that invoked the macro va_arg with the same parameter (<a href="#7.15">7.15</a>).
+<li> A macro definition of va_start, va_arg, va_copy, or va_end is suppressed in
+ order to access an actual function, or the program defines an external identifier with
+ the name va_copy or va_end (<a href="#7.15.1">7.15.1</a>).
+<li> The va_start or va_copy macro is invoked without a corresponding invocation
+ of the va_end macro in the same function, or vice versa (<a href="#7.15.1">7.15.1</a>, <a href="#7.15.1.2">7.15.1.2</a>, <a href="#7.15.1.3">7.15.1.3</a>,
+ <a href="#7.15.1.4">7.15.1.4</a>).
+<li> The type parameter to the va_arg macro is not such that a pointer to an object of
+ that type can be obtained simply by postfixing a * (<a href="#7.15.1.1">7.15.1.1</a>).
+<li> The va_arg macro is invoked when there is no actual next argument, or with a
+ specified type that is not compatible with the promoted type of the actual next
+ argument, with certain exceptions (<a href="#7.15.1.1">7.15.1.1</a>).
+<li> The va_copy or va_start macro is called to initialize a va_list that was
+ previously initialized by either macro without an intervening invocation of the
+ va_end macro for the same va_list (<a href="#7.15.1.2">7.15.1.2</a>, <a href="#7.15.1.4">7.15.1.4</a>).
+<li> The parameter parmN of a va_start macro is declared with the register
+ storage class, with a function or array type, or with a type that is not compatible with
+ the type that results after application of the default argument promotions (<a href="#7.15.1.4">7.15.1.4</a>).
+<!--page 513 -->
+<li> The member designator parameter of an offsetof macro is an invalid right
+ operand of the . operator for the type parameter, or designates a bit-field (<a href="#7.17">7.17</a>).
+<li> The argument in an instance of one of the integer-constant macros is not a decimal,
+ octal, or hexadecimal constant, or it has a value that exceeds the limits for the
+ corresponding type (<a href="#7.18.4">7.18.4</a>).
+<li> A byte input/output function is applied to a wide-oriented stream, or a wide character
+ input/output function is applied to a byte-oriented stream (<a href="#7.19.2">7.19.2</a>).
+<li> Use is made of any portion of a file beyond the most recent wide character written to
+ a wide-oriented stream (<a href="#7.19.2">7.19.2</a>).
+<li> The value of a pointer to a FILE object is used after the associated file is closed
+ (<a href="#7.19.3">7.19.3</a>).
+<li> The stream for the fflush function points to an input stream or to an update stream
+ in which the most recent operation was input (<a href="#7.19.5.2">7.19.5.2</a>).
+<li> The string pointed to by the mode argument in a call to the fopen function does not
+ exactly match one of the specified character sequences (<a href="#7.19.5.3">7.19.5.3</a>).
+<li> An output operation on an update stream is followed by an input operation without an
+ intervening call to the fflush function or a file positioning function, or an input
+ operation on an update stream is followed by an output operation with an intervening
+ call to a file positioning function (<a href="#7.19.5.3">7.19.5.3</a>).
+<li> An attempt is made to use the contents of the array that was supplied in a call to the
+ setvbuf function (<a href="#7.19.5.6">7.19.5.6</a>).
+<li> There are insufficient arguments for the format in a call to one of the formatted
+ input/output functions, or an argument does not have an appropriate type (<a href="#7.19.6.1">7.19.6.1</a>,
+ <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>).
+<li> The format in a call to one of the formatted input/output functions or to the
+ strftime or wcsftime function is not a valid multibyte character sequence that
+ begins and ends in its initial shift state (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>,
+ <a href="#7.24.5.1">7.24.5.1</a>).
+<li> In a call to one of the formatted output functions, a precision appears with a
+ conversion specifier other than those described (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
+<li> A conversion specification for a formatted output function uses an asterisk to denote
+ an argument-supplied field width or precision, but the corresponding argument is not
+ provided (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
+<li> A conversion specification for a formatted output function uses a # or 0 flag with a
+ conversion specifier other than those described (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
+<!--page 514 -->
+<li> A conversion specification for one of the formatted input/output functions uses a
+ length modifier with a conversion specifier other than those described (<a href="#7.19.6.1">7.19.6.1</a>,
+ <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>).
+<li> An s conversion specifier is encountered by one of the formatted output functions,
+ and the argument is missing the null terminator (unless a precision is specified that
+ does not require null termination) (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
+<li> An n conversion specification for one of the formatted input/output functions includes
+ any flags, an assignment-suppressing character, a field width, or a precision (<a href="#7.19.6.1">7.19.6.1</a>,
+ <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>).
+<li> A % conversion specifier is encountered by one of the formatted input/output
+ functions, but the complete conversion specification is not exactly %% (<a href="#7.19.6.1">7.19.6.1</a>,
+ <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>).
+<li> An invalid conversion specification is found in the format for one of the formatted
+ input/output functions, or the strftime or wcsftime function (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>,
+ <a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#7.24.5.1">7.24.5.1</a>).
+<li> The number of characters transmitted by a formatted output function is greater than
+ INT_MAX (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.3">7.19.6.3</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.10">7.19.6.10</a>).
+<li> The result of a conversion by one of the formatted input functions cannot be
+ represented in the corresponding object, or the receiving object does not have an
+ appropriate type (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>).
+<li> A c, s, or [ conversion specifier is encountered by one of the formatted input
+ functions, and the array pointed to by the corresponding argument is not large enough
+ to accept the input sequence (and a null terminator if the conversion specifier is s or
+ [) (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>).
+<li> A c, s, or [ conversion specifier with an l qualifier is encountered by one of the
+ formatted input functions, but the input is not a valid multibyte character sequence
+ that begins in the initial shift state (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>).
+<li> The input item for a %p conversion by one of the formatted input functions is not a
+ value converted earlier during the same program execution (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>).
+<li> The vfprintf, vfscanf, vprintf, vscanf, vsnprintf, vsprintf,
+ vsscanf, vfwprintf, vfwscanf, vswprintf, vswscanf, vwprintf, or
+ vwscanf function is called with an improperly initialized va_list argument, or
+ the argument is used (other than in an invocation of va_end) after the function
+ returns (<a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.9">7.19.6.9</a>, <a href="#7.19.6.10">7.19.6.10</a>, <a href="#7.19.6.11">7.19.6.11</a>, <a href="#7.19.6.12">7.19.6.12</a>, <a href="#7.19.6.13">7.19.6.13</a>, <a href="#7.19.6.14">7.19.6.14</a>,
+ <a href="#7.24.2.5">7.24.2.5</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.7">7.24.2.7</a>, <a href="#7.24.2.8">7.24.2.8</a>, <a href="#7.24.2.9">7.24.2.9</a>, <a href="#7.24.2.10">7.24.2.10</a>).
+<li> The contents of the array supplied in a call to the fgets, gets, or fgetws function
+ are used after a read error occurred (<a href="#7.19.7.2">7.19.7.2</a>, <a href="#7.19.7.7">7.19.7.7</a>, <a href="#7.24.3.2">7.24.3.2</a>).
+<!--page 515 -->
+<li> The file position indicator for a binary stream is used after a call to the ungetc
+ function where its value was zero before the call (<a href="#7.19.7.11">7.19.7.11</a>).
+<li> The file position indicator for a stream is used after an error occurred during a call to
+ the fread or fwrite function (<a href="#7.19.8.1">7.19.8.1</a>, <a href="#7.19.8.2">7.19.8.2</a>).
+<li> A partial element read by a call to the fread function is used (<a href="#7.19.8.1">7.19.8.1</a>).
+<li> The fseek function is called for a text stream with a nonzero offset and either the
+ offset was not returned by a previous successful call to the ftell function on a
+ stream associated with the same file or whence is not SEEK_SET (<a href="#7.19.9.2">7.19.9.2</a>).
+<li> The fsetpos function is called to set a position that was not returned by a previous
+ successful call to the fgetpos function on a stream associated with the same file
+ (<a href="#7.19.9.3">7.19.9.3</a>).
+<li> A non-null pointer returned by a call to the calloc, malloc, or realloc function
+ with a zero requested size is used to access an object (<a href="#7.20.3">7.20.3</a>).
+<li> The value of a pointer that refers to space deallocated by a call to the free or
+ realloc function is used (<a href="#7.20.3">7.20.3</a>).
+<li> The pointer argument to the free or realloc function does not match a pointer
+ earlier returned by calloc, malloc, or realloc, or the space has been
+ deallocated by a call to free or realloc (<a href="#7.20.3.2">7.20.3.2</a>, <a href="#7.20.3.4">7.20.3.4</a>).
+<li> The value of the object allocated by the malloc function is used (<a href="#7.20.3.3">7.20.3.3</a>).
+<li> The value of any bytes in a new object allocated by the realloc function beyond
+ the size of the old object are used (<a href="#7.20.3.4">7.20.3.4</a>).
+<li> The program executes more than one call to the exit function (<a href="#7.20.4.3">7.20.4.3</a>).
+<li> During the call to a function registered with the atexit function, a call is made to
+ the longjmp function that would terminate the call to the registered function
+ (<a href="#7.20.4.3">7.20.4.3</a>).
+<li> The string set up by the getenv or strerror function is modified by the program
+ (<a href="#7.20.4.5">7.20.4.5</a>, <a href="#7.21.6.2">7.21.6.2</a>).
+<li> A command is executed through the system function in a way that is documented as
+ causing termination or some other form of undefined behavior (<a href="#7.20.4.6">7.20.4.6</a>).
+<li> A searching or sorting utility function is called with an invalid pointer argument, even
+ if the number of elements is zero (<a href="#7.20.5">7.20.5</a>).
+<li> The comparison function called by a searching or sorting utility function alters the
+ contents of the array being searched or sorted, or returns ordering values
+ inconsistently (<a href="#7.20.5">7.20.5</a>).
+<!--page 516 -->
+<li> The array being searched by the bsearch function does not have its elements in
+ proper order (<a href="#7.20.5.1">7.20.5.1</a>).
+<li> The current conversion state is used by a multibyte/wide character conversion
+ function after changing the LC_CTYPE category (<a href="#7.20.7">7.20.7</a>).
+<li> A string or wide string utility function is instructed to access an array beyond the end
+ of an object (<a href="#7.21.1">7.21.1</a>, <a href="#7.24.4">7.24.4</a>).
+<li> A string or wide string utility function is called with an invalid pointer argument, even
+ if the length is zero (<a href="#7.21.1">7.21.1</a>, <a href="#7.24.4">7.24.4</a>).
+<li> The contents of the destination array are used after a call to the strxfrm,
+ strftime, wcsxfrm, or wcsftime function in which the specified length was
+ too small to hold the entire null-terminated result (<a href="#7.21.4.5">7.21.4.5</a>, <a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.4.4.4">7.24.4.4.4</a>,
+ <a href="#7.24.5.1">7.24.5.1</a>).
+<li> The first argument in the very first call to the strtok or wcstok is a null pointer
+ (<a href="#7.21.5.8">7.21.5.8</a>, <a href="#7.24.4.5.7">7.24.4.5.7</a>).
+<li> The type of an argument to a type-generic macro is not compatible with the type of
+ the corresponding parameter of the selected function (<a href="#7.22">7.22</a>).
+<li> A complex argument is supplied for a generic parameter of a type-generic macro that
+ has no corresponding complex function (<a href="#7.22">7.22</a>).
+<li> The argument corresponding to an s specifier without an l qualifier in a call to the
+ fwprintf function does not point to a valid multibyte character sequence that
+ begins in the initial shift state (<a href="#7.24.2.11">7.24.2.11</a>).
+<li> In a call to the wcstok function, the object pointed to by ptr does not have the
+ value stored by the previous call for the same wide string (<a href="#7.24.4.5.7">7.24.4.5.7</a>).
+<li> An mbstate_t object is used inappropriately (<a href="#7.24.6">7.24.6</a>).
+<li> The value of an argument of type wint_t to a wide character classification or case
+ mapping function is neither equal to the value of WEOF nor representable as a
+ wchar_t (<a href="#7.25.1">7.25.1</a>).
+<li> The iswctype function is called using a different LC_CTYPE category from the
+ one in effect for the call to the wctype function that returned the description
+ (<a href="#7.25.2.2.1">7.25.2.2.1</a>).
+<li> The towctrans function is called using a different LC_CTYPE category from the
+ one in effect for the call to the wctrans function that returned the description
+ (<a href="#7.25.3.2.1">7.25.3.2.1</a>).
+<!--page 517 -->
+</ul>
+
+<h3><a name="J.3" href="#J.3">J.3 Implementation-defined behavior</a></h3>
+<p><!--para 1 -->
+ A conforming implementation is required to document its choice of behavior in each of
+ the areas listed in this subclause. The following are implementation-defined:
+
+<h4><a name="J.3.1" href="#J.3.1">J.3.1 Translation</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> How a diagnostic is identified (<a href="#3.10">3.10</a>, <a href="#5.1.1.3">5.1.1.3</a>).
+<li> Whether each nonempty sequence of white-space characters other than new-line is
+ retained or replaced by one space character in translation phase 3 (<a href="#5.1.1.2">5.1.1.2</a>).
+</ul>
+
+<h4><a name="J.3.2" href="#J.3.2">J.3.2 Environment</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> The mapping between physical source file multibyte characters and the source
+ character set in translation phase 1 (<a href="#5.1.1.2">5.1.1.2</a>).
+<li> The name and type of the function called at program startup in a freestanding
+ environment (<a href="#5.1.2.1">5.1.2.1</a>).
+<li> The effect of program termination in a freestanding environment (<a href="#5.1.2.1">5.1.2.1</a>).
+<li> An alternative manner in which the main function may be defined (<a href="#5.1.2.2.1">5.1.2.2.1</a>).
+<li> The values given to the strings pointed to by the argv argument to main (<a href="#5.1.2.2.1">5.1.2.2.1</a>).
+<li> What constitutes an interactive device (<a href="#5.1.2.3">5.1.2.3</a>).
+<li> The set of signals, their semantics, and their default handling (<a href="#7.14">7.14</a>).
+<li> Signal values other than SIGFPE, SIGILL, and SIGSEGV that correspond to a
+ computational exception (<a href="#7.14.1.1">7.14.1.1</a>).
+<li> Signals for which the equivalent of signal(sig, SIG_IGN); is executed at
+ program startup (<a href="#7.14.1.1">7.14.1.1</a>).
+<li> The set of environment names and the method for altering the environment list used
+ by the getenv function (<a href="#7.20.4.5">7.20.4.5</a>).
+<li> The manner of execution of the string by the system function (<a href="#7.20.4.6">7.20.4.6</a>).
+</ul>
+
+<h4><a name="J.3.3" href="#J.3.3">J.3.3 Identifiers</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> Which additional multibyte characters may appear in identifiers and their
+ correspondence to universal character names (<a href="#6.4.2">6.4.2</a>).
+<li> The number of significant initial characters in an identifier (<a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2">6.4.2</a>).
+<!--page 518 -->
+</ul>
+
+<h4><a name="J.3.4" href="#J.3.4">J.3.4 Characters</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> The number of bits in a byte (<a href="#3.6">3.6</a>).
+<li> The values of the members of the execution character set (<a href="#5.2.1">5.2.1</a>).
+<li> The unique value of the member of the execution character set produced for each of
+ the standard alphabetic escape sequences (<a href="#5.2.2">5.2.2</a>).
+<li> The value of a char object into which has been stored any character other than a
+ member of the basic execution character set (<a href="#6.2.5">6.2.5</a>).
+<li> Which of signed char or unsigned char has the same range, representation,
+ and behavior as ''plain'' char (<a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>).
+<li> The mapping of members of the source character set (in character constants and string
+ literals) to members of the execution character set (<a href="#6.4.4.4">6.4.4.4</a>, <a href="#5.1.1.2">5.1.1.2</a>).
+<li> The value of an integer character constant containing more than one character or
+ containing a character or escape sequence that does not map to a single-byte
+ execution character (<a href="#6.4.4.4">6.4.4.4</a>).
+<li> The value of a wide character constant containing more than one multibyte character,
+ or containing a multibyte character or escape sequence not represented in the
+ extended execution character set (<a href="#6.4.4.4">6.4.4.4</a>).
+<li> The current locale used to convert a wide character constant consisting of a single
+ multibyte character that maps to a member of the extended execution character set
+ into a corresponding wide character code (<a href="#6.4.4.4">6.4.4.4</a>).
+<li> The current locale used to convert a wide string literal into corresponding wide
+ character codes (<a href="#6.4.5">6.4.5</a>).
+<li> The value of a string literal containing a multibyte character or escape sequence not
+ represented in the execution character set (<a href="#6.4.5">6.4.5</a>).
+</ul>
+
+<h4><a name="J.3.5" href="#J.3.5">J.3.5 Integers</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> Any extended integer types that exist in the implementation (<a href="#6.2.5">6.2.5</a>).
+<li> Whether signed integer types are represented using sign and magnitude, two's
+ complement, or ones' complement, and whether the extraordinary value is a trap
+ representation or an ordinary value (<a href="#6.2.6.2">6.2.6.2</a>).
+<li> The rank of any extended integer type relative to another extended integer type with
+ the same precision (<a href="#6.3.1.1">6.3.1.1</a>).
+<li> The result of, or the signal raised by, converting an integer to a signed integer type
+ when the value cannot be represented in an object of that type (<a href="#6.3.1.3">6.3.1.3</a>).
+<!--page 519 -->
+<li> The results of some bitwise operations on signed integers (<a href="#6.5">6.5</a>).
+</ul>
+
+<h4><a name="J.3.6" href="#J.3.6">J.3.6 Floating point</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> The accuracy of the floating-point operations and of the library functions in
+ <a href="#7.12"><math.h></a> and <a href="#7.3"><complex.h></a> that return floating-point results (<a href="#5.2.4.2.2">5.2.4.2.2</a>).
+<li> The accuracy of the conversions between floating-point internal representations and
+ string representations performed by the library functions in <a href="#7.19"><stdio.h></a>,
+ <a href="#7.20"><stdlib.h></a>, and <a href="#7.24"><wchar.h></a> (<a href="#5.2.4.2.2">5.2.4.2.2</a>).
+<li> The rounding behaviors characterized by non-standard values of FLT_ROUNDS
+ (<a href="#5.2.4.2.2">5.2.4.2.2</a>).
+<li> The evaluation methods characterized by non-standard negative values of
+ FLT_EVAL_METHOD (<a href="#5.2.4.2.2">5.2.4.2.2</a>).
+<li> The direction of rounding when an integer is converted to a floating-point number that
+ cannot exactly represent the original value (<a href="#6.3.1.4">6.3.1.4</a>).
+<li> The direction of rounding when a floating-point number is converted to a narrower
+ floating-point number (<a href="#6.3.1.5">6.3.1.5</a>).
+<li> How the nearest representable value or the larger or smaller representable value
+ immediately adjacent to the nearest representable value is chosen for certain floating
+ constants (<a href="#6.4.4.2">6.4.4.2</a>).
+<li> Whether and how floating expressions are contracted when not disallowed by the
+ FP_CONTRACT pragma (<a href="#6.5">6.5</a>).
+<li> The default state for the FENV_ACCESS pragma (<a href="#7.6.1">7.6.1</a>).
+<li> Additional floating-point exceptions, rounding modes, environments, and
+ classifications, and their macro names (<a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>).
+<li> The default state for the FP_CONTRACT pragma (<a href="#7.12.2">7.12.2</a>). *
+</ul>
+
+<h4><a name="J.3.7" href="#J.3.7">J.3.7 Arrays and pointers</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> The result of converting a pointer to an integer or vice versa (<a href="#6.3.2.3">6.3.2.3</a>).
+<li> The size of the result of subtracting two pointers to elements of the same array
+ (<a href="#6.5.6">6.5.6</a>).
+<!--page 520 -->
+</ul>
+
+<h4><a name="J.3.8" href="#J.3.8">J.3.8 Hints</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> The extent to which suggestions made by using the register storage-class
+ specifier are effective (<a href="#6.7.1">6.7.1</a>).
+<li> The extent to which suggestions made by using the inline function specifier are
+ effective (<a href="#6.7.4">6.7.4</a>).
+</ul>
+
+<h4><a name="J.3.9" href="#J.3.9">J.3.9 Structures, unions, enumerations, and bit-fields</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> Whether a ''plain'' int bit-field is treated as a signed int bit-field or as an
+ unsigned int bit-field (<a href="#6.7.2">6.7.2</a>, <a href="#6.7.2.1">6.7.2.1</a>).
+<li> Allowable bit-field types other than _Bool, signed int, and unsigned int
+ (<a href="#6.7.2.1">6.7.2.1</a>).
+<li> Whether a bit-field can straddle a storage-unit boundary (<a href="#6.7.2.1">6.7.2.1</a>).
+<li> The order of allocation of bit-fields within a unit (<a href="#6.7.2.1">6.7.2.1</a>).
+<li> The alignment of non-bit-field members of structures (<a href="#6.7.2.1">6.7.2.1</a>). This should present
+ no problem unless binary data written by one implementation is read by another.
+<li> The integer type compatible with each enumerated type (<a href="#6.7.2.2">6.7.2.2</a>).
+</ul>
+
+<h4><a name="J.3.10" href="#J.3.10">J.3.10 Qualifiers</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> What constitutes an access to an object that has volatile-qualified type (<a href="#6.7.3">6.7.3</a>).
+</ul>
+
+<h4><a name="J.3.11" href="#J.3.11">J.3.11 Preprocessing directives</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> The locations within #pragma directives where header name preprocessing tokens
+ are recognized (<a href="#6.4">6.4</a>, <a href="#6.4.7">6.4.7</a>).
+<li> How sequences in both forms of header names are mapped to headers or external
+ source file names (<a href="#6.4.7">6.4.7</a>).
+<li> Whether the value of a character constant in a constant expression that controls
+ conditional inclusion matches the value of the same character constant in the
+ execution character set (<a href="#6.10.1">6.10.1</a>).
+<li> Whether the value of a single-character character constant in a constant expression
+ that controls conditional inclusion may have a negative value (<a href="#6.10.1">6.10.1</a>).
+<li> The places that are searched for an included < > delimited header, and how the places
+ are specified or the header is identified (<a href="#6.10.2">6.10.2</a>).
+<li> How the named source file is searched for in an included " " delimited header
+ (<a href="#6.10.2">6.10.2</a>).
+<li> The method by which preprocessing tokens (possibly resulting from macro
+ expansion) in a #include directive are combined into a header name (<a href="#6.10.2">6.10.2</a>).
+<!--page 521 -->
+<li> The nesting limit for #include processing (<a href="#6.10.2">6.10.2</a>).
+<li> Whether the # operator inserts a \ character before the \ character that begins a
+ universal character name in a character constant or string literal (<a href="#6.10.3.2">6.10.3.2</a>).
+<li> The behavior on each recognized non-STDC #pragma directive (<a href="#6.10.6">6.10.6</a>).
+<li> The definitions for __DATE__ and __TIME__ when respectively, the date and
+ time of translation are not available (<a href="#6.10.8">6.10.8</a>).
+</ul>
+
+<h4><a name="J.3.12" href="#J.3.12">J.3.12 Library functions</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> Any library facilities available to a freestanding program, other than the minimal set
+ required by clause 4 (<a href="#5.1.2.1">5.1.2.1</a>).
+<li> The format of the diagnostic printed by the assert macro (<a href="#7.2.1.1">7.2.1.1</a>).
+<li> The representation of the floating-point status flags stored by the
+ fegetexceptflag function (<a href="#7.6.2.2">7.6.2.2</a>).
+<li> Whether the feraiseexcept function raises the ''inexact'' floating-point
+ exception in addition to the ''overflow'' or ''underflow'' floating-point exception
+ (<a href="#7.6.2.3">7.6.2.3</a>).
+<li> Strings other than "C" and "" that may be passed as the second argument to the
+ setlocale function (<a href="#7.11.1.1">7.11.1.1</a>).
+<li> The types defined for float_t and double_t when the value of the
+ FLT_EVAL_METHOD macro is less than 0 (<a href="#7.12">7.12</a>).
+<li> Domain errors for the mathematics functions, other than those required by this
+ International Standard (<a href="#7.12.1">7.12.1</a>).
+<li> The values returned by the mathematics functions on domain errors (<a href="#7.12.1">7.12.1</a>).
+<li> The values returned by the mathematics functions on underflow range errors, whether
+ errno is set to the value of the macro ERANGE when the integer expression
+ math_errhandling & MATH_ERRNO is nonzero, and whether the ''underflow''
+ floating-point exception is raised when the integer expression math_errhandling
+ & MATH_ERREXCEPT is nonzero. (<a href="#7.12.1">7.12.1</a>).
+<li> Whether a domain error occurs or zero is returned when an fmod function has a
+ second argument of zero (<a href="#7.12.10.1">7.12.10.1</a>).
+<li> Whether a domain error occurs or zero is returned when a remainder function has
+ a second argument of zero (<a href="#7.12.10.2">7.12.10.2</a>).
+<li> The base-2 logarithm of the modulus used by the remquo functions in reducing the
+ quotient (<a href="#7.12.10.3">7.12.10.3</a>).
+<!--page 522 -->
+<li> Whether a domain error occurs or zero is returned when a remquo function has a
+ second argument of zero (<a href="#7.12.10.3">7.12.10.3</a>).
+<li> Whether the equivalent of signal(sig, SIG_DFL); is executed prior to the call
+ of a signal handler, and, if not, the blocking of signals that is performed (<a href="#7.14.1.1">7.14.1.1</a>).
+<li> The null pointer constant to which the macro NULL expands (<a href="#7.17">7.17</a>).
+<li> Whether the last line of a text stream requires a terminating new-line character
+ (<a href="#7.19.2">7.19.2</a>).
+<li> Whether space characters that are written out to a text stream immediately before a
+ new-line character appear when read in (<a href="#7.19.2">7.19.2</a>).
+<li> The number of null characters that may be appended to data written to a binary
+ stream (<a href="#7.19.2">7.19.2</a>).
+<li> Whether the file position indicator of an append-mode stream is initially positioned at
+ the beginning or end of the file (<a href="#7.19.3">7.19.3</a>).
+<li> Whether a write on a text stream causes the associated file to be truncated beyond that
+ point (<a href="#7.19.3">7.19.3</a>).
+<li> The characteristics of file buffering (<a href="#7.19.3">7.19.3</a>).
+<li> Whether a zero-length file actually exists (<a href="#7.19.3">7.19.3</a>).
+<li> The rules for composing valid file names (<a href="#7.19.3">7.19.3</a>).
+<li> Whether the same file can be simultaneously open multiple times (<a href="#7.19.3">7.19.3</a>).
+<li> The nature and choice of encodings used for multibyte characters in files (<a href="#7.19.3">7.19.3</a>).
+<li> The effect of the remove function on an open file (<a href="#7.19.4.1">7.19.4.1</a>).
+<li> The effect if a file with the new name exists prior to a call to the rename function
+ (<a href="#7.19.4.2">7.19.4.2</a>).
+<li> Whether an open temporary file is removed upon abnormal program termination
+ (<a href="#7.19.4.3">7.19.4.3</a>).
+<li> Which changes of mode are permitted (if any), and under what circumstances
+ (<a href="#7.19.5.4">7.19.5.4</a>).
+<li> The style used to print an infinity or NaN, and the meaning of any n-char or n-wchar
+ sequence printed for a NaN (<a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>).
+<li> The output for %p conversion in the fprintf or fwprintf function (<a href="#7.19.6.1">7.19.6.1</a>,
+ <a href="#7.24.2.1">7.24.2.1</a>).
+<li> The interpretation of a - character that is neither the first nor the last character, nor
+ the second where a ^ character is the first, in the scanlist for %[ conversion in the
+ fscanf or fwscanf function (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>).
+<!--page 523 -->
+<li> The set of sequences matched by a %p conversion and the interpretation of the
+ corresponding input item in the fscanf or fwscanf function (<a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>).
+<li> The value to which the macro errno is set by the fgetpos, fsetpos, or ftell
+ functions on failure (<a href="#7.19.9.1">7.19.9.1</a>, <a href="#7.19.9.3">7.19.9.3</a>, <a href="#7.19.9.4">7.19.9.4</a>).
+<li> The meaning of any n-char or n-wchar sequence in a string representing a NaN that is
+ converted by the strtod, strtof, strtold, wcstod, wcstof, or wcstold
+ function (<a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>).
+<li> Whether or not the strtod, strtof, strtold, wcstod, wcstof, or wcstold
+ function sets errno to ERANGE when underflow occurs (<a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>).
+<li> Whether the calloc, malloc, and realloc functions return a null pointer or a
+ pointer to an allocated object when the size requested is zero (<a href="#7.20.3">7.20.3</a>).
+<li> Whether open streams with unwritten buffered data are flushed, open streams are
+ closed, or temporary files are removed when the abort or _Exit function is called
+ (<a href="#7.20.4.1">7.20.4.1</a>, <a href="#7.20.4.4">7.20.4.4</a>).
+<li> The termination status returned to the host environment by the abort, exit, or
+ _Exit function (<a href="#7.20.4.1">7.20.4.1</a>, <a href="#7.20.4.3">7.20.4.3</a>, <a href="#7.20.4.4">7.20.4.4</a>).
+<li> The value returned by the system function when its argument is not a null pointer
+ (<a href="#7.20.4.6">7.20.4.6</a>).
+<li> The local time zone and Daylight Saving Time (<a href="#7.23.1">7.23.1</a>).
+<li> The range and precision of times representable in clock_t and time_t (<a href="#7.23">7.23</a>).
+<li> The era for the clock function (<a href="#7.23.2.1">7.23.2.1</a>).
+<li> The replacement string for the %Z specifier to the strftime, and wcsftime
+ functions in the "C" locale (<a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.5.1">7.24.5.1</a>).
+<li> Whether the functions in <a href="#7.12"><math.h></a> honor the rounding direction mode in an
+ IEC 60559 conformant implementation, unless explicitly specified otherwise (<a href="#F.9">F.9</a>).
+</ul>
+
+<h4><a name="J.3.13" href="#J.3.13">J.3.13 Architecture</a></h4>
+<p><!--para 1 -->
+<ul>
+<li> The values or expressions assigned to the macros specified in the headers
+ <a href="#7.7"><float.h></a>, <a href="#7.10"><limits.h></a>, and <a href="#7.18"><stdint.h></a> (<a href="#5.2.4.2">5.2.4.2</a>, <a href="#7.18.2">7.18.2</a>, <a href="#7.18.3">7.18.3</a>).
+<li> The number, order, and encoding of bytes in any object (when not explicitly specified
+ in this International Standard) (<a href="#6.2.6.1">6.2.6.1</a>).
+<li> The value of the result of the sizeof operator (<a href="#6.5.3.4">6.5.3.4</a>).
+<!--page 524 -->
+</ul>
+
+<h3><a name="J.4" href="#J.4">J.4 Locale-specific behavior</a></h3>
+<p><!--para 1 -->
+ The following characteristics of a hosted environment are locale-specific and are required
+ to be documented by the implementation:
+<ul>
+<li> Additional members of the source and execution character sets beyond the basic
+ character set (<a href="#5.2.1">5.2.1</a>).
+<li> The presence, meaning, and representation of additional multibyte characters in the
+ execution character set beyond the basic character set (<a href="#5.2.1.2">5.2.1.2</a>).
+<li> The shift states used for the encoding of multibyte characters (<a href="#5.2.1.2">5.2.1.2</a>).
+<li> The direction of writing of successive printing characters (<a href="#5.2.2">5.2.2</a>).
+<li> The decimal-point character (<a href="#7.1.1">7.1.1</a>).
+<li> The set of printing characters (<a href="#7.4">7.4</a>, <a href="#7.25.2">7.25.2</a>).
+<li> The set of control characters (<a href="#7.4">7.4</a>, <a href="#7.25.2">7.25.2</a>).
+<li> The sets of characters tested for by the isalpha, isblank, islower, ispunct,
+ isspace, isupper, iswalpha, iswblank, iswlower, iswpunct,
+ iswspace, or iswupper functions (<a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.3">7.4.1.3</a>, <a href="#7.4.1.7">7.4.1.7</a>, <a href="#7.4.1.9">7.4.1.9</a>, <a href="#7.4.1.10">7.4.1.10</a>,
+ <a href="#7.4.1.11">7.4.1.11</a>, <a href="#7.25.2.1.2">7.25.2.1.2</a>, <a href="#7.25.2.1.3">7.25.2.1.3</a>, <a href="#7.25.2.1.7">7.25.2.1.7</a>, <a href="#7.25.2.1.9">7.25.2.1.9</a>, <a href="#7.25.2.1.10">7.25.2.1.10</a>, <a href="#7.25.2.1.11">7.25.2.1.11</a>).
+<li> The native environment (<a href="#7.11.1.1">7.11.1.1</a>).
+<li> Additional subject sequences accepted by the numeric conversion functions (<a href="#7.20.1">7.20.1</a>,
+ <a href="#7.24.4.1">7.24.4.1</a>).
+<li> The collation sequence of the execution character set (<a href="#7.21.4.3">7.21.4.3</a>, <a href="#7.24.4.4.2">7.24.4.4.2</a>).
+<li> The contents of the error message strings set up by the strerror function
+ (<a href="#7.21.6.2">7.21.6.2</a>).
+<li> The formats for time and date (<a href="#7.23.3.5">7.23.3.5</a>, <a href="#7.24.5.1">7.24.5.1</a>).
+<li> Character mappings that are supported by the towctrans function (<a href="#7.25.1">7.25.1</a>).
+<li> Character classifications that are supported by the iswctype function (<a href="#7.25.1">7.25.1</a>).
+<!--page 525 -->
+</ul>
+
+<h3><a name="J.5" href="#J.5">J.5 Common extensions</a></h3>
+<p><!--para 1 -->
+ The following extensions are widely used in many systems, but are not portable to all
+ implementations. The inclusion of any extension that may cause a strictly conforming
+ program to become invalid renders an implementation nonconforming. Examples of such
+ extensions are new keywords, extra library functions declared in standard headers, or
+ predefined macros with names that do not begin with an underscore.
+
+<h4><a name="J.5.1" href="#J.5.1">J.5.1 Environment arguments</a></h4>
+<p><!--para 1 -->
+ In a hosted environment, the main function receives a third argument, char *envp[],
+ that points to a null-terminated array of pointers to char, each of which points to a string
+ that provides information about the environment for this execution of the program
+ (<a href="#5.1.2.2.1">5.1.2.2.1</a>).
+
+<h4><a name="J.5.2" href="#J.5.2">J.5.2 Specialized identifiers</a></h4>
+<p><!--para 1 -->
+ Characters other than the underscore _, letters, and digits, that are not part of the basic
+ source character set (such as the dollar sign $, or characters in national character sets)
+ may appear in an identifier (<a href="#6.4.2">6.4.2</a>).
+
+<h4><a name="J.5.3" href="#J.5.3">J.5.3 Lengths and cases of identifiers</a></h4>
+<p><!--para 1 -->
+ All characters in identifiers (with or without external linkage) are significant (<a href="#6.4.2">6.4.2</a>).
+
+<h4><a name="J.5.4" href="#J.5.4">J.5.4 Scopes of identifiers</a></h4>
+<p><!--para 1 -->
+ A function identifier, or the identifier of an object the declaration of which contains the
+ keyword extern, has file scope (<a href="#6.2.1">6.2.1</a>).
+
+<h4><a name="J.5.5" href="#J.5.5">J.5.5 Writable string literals</a></h4>
+<p><!--para 1 -->
+ String literals are modifiable (in which case, identical string literals should denote distinct
+ objects) (<a href="#6.4.5">6.4.5</a>).
+
+<h4><a name="J.5.6" href="#J.5.6">J.5.6 Other arithmetic types</a></h4>
+<p><!--para 1 -->
+ Additional arithmetic types, such as __int128 or double double, and their
+ appropriate conversions are defined (<a href="#6.2.5">6.2.5</a>, <a href="#6.3.1">6.3.1</a>). Additional floating types may have
+ more range or precision than long double, may be used for evaluating expressions of
+ other floating types, and may be used to define float_t or double_t.
+<!--page 526 -->
+
+<h4><a name="J.5.7" href="#J.5.7">J.5.7 Function pointer casts</a></h4>
+<p><!--para 1 -->
+ A pointer to an object or to void may be cast to a pointer to a function, allowing data to
+ be invoked as a function (<a href="#6.5.4">6.5.4</a>).
+<p><!--para 2 -->
+ A pointer to a function may be cast to a pointer to an object or to void, allowing a
+ function to be inspected or modified (for example, by a debugger) (<a href="#6.5.4">6.5.4</a>).
+
+<h4><a name="J.5.8" href="#J.5.8">J.5.8 Extended bit-field types</a></h4>
+<p><!--para 1 -->
+ A bit-field may be declared with a type other than _Bool, unsigned int, or
+ signed int, with an appropriate maximum width (<a href="#6.7.2.1">6.7.2.1</a>).
+
+<h4><a name="J.5.9" href="#J.5.9">J.5.9 The fortran keyword</a></h4>
+<p><!--para 1 -->
+ The fortran function specifier may be used in a function declaration to indicate that
+ calls suitable for FORTRAN should be generated, or that a different representation for the
+ external name is to be generated (<a href="#6.7.4">6.7.4</a>).
+
+<h4><a name="J.5.10" href="#J.5.10">J.5.10 The asm keyword</a></h4>
+<p><!--para 1 -->
+ The asm keyword may be used to insert assembly language directly into the translator
+ output (<a href="#6.8">6.8</a>). The most common implementation is via a statement of the form:
+<pre>
+ asm ( character-string-literal );
+</pre>
+
+<h4><a name="J.5.11" href="#J.5.11">J.5.11 Multiple external definitions</a></h4>
+<p><!--para 1 -->
+ There may be more than one external definition for the identifier of an object, with or
+ without the explicit use of the keyword extern; if the definitions disagree, or more than
+ one is initialized, the behavior is undefined (<a href="#6.9.2">6.9.2</a>).
+
+<h4><a name="J.5.12" href="#J.5.12">J.5.12 Predefined macro names</a></h4>
+<p><!--para 1 -->
+ Macro names that do not begin with an underscore, describing the translation and
+ execution environments, are defined by the implementation before translation begins
+ (<a href="#6.10.8">6.10.8</a>).
+
+<h4><a name="J.5.13" href="#J.5.13">J.5.13 Floating-point status flags</a></h4>
+<p><!--para 1 -->
+ If any floating-point status flags are set on normal termination after all calls to functions
+ registered by the atexit function have been made (see <a href="#7.20.4.3">7.20.4.3</a>), the implementation
+ writes some diagnostics indicating the fact to the stderr stream, if it is still open,
+<!--page 527 -->
+
+<h4><a name="J.5.14" href="#J.5.14">J.5.14 Extra arguments for signal handlers</a></h4>
+<p><!--para 1 -->
+ Handlers for specific signals are called with extra arguments in addition to the signal
+ number (<a href="#7.14.1.1">7.14.1.1</a>).
+
+<h4><a name="J.5.15" href="#J.5.15">J.5.15 Additional stream types and file-opening modes</a></h4>
+<p><!--para 1 -->
+ Additional mappings from files to streams are supported (<a href="#7.19.2">7.19.2</a>).
+<p><!--para 2 -->
+ Additional file-opening modes may be specified by characters appended to the mode
+ argument of the fopen function (<a href="#7.19.5.3">7.19.5.3</a>).
+
+<h4><a name="J.5.16" href="#J.5.16">J.5.16 Defined file position indicator</a></h4>
+<p><!--para 1 -->
+ The file position indicator is decremented by each successful call to the ungetc or
+ ungetwc function for a text stream, except if its value was zero before a call (<a href="#7.19.7.11">7.19.7.11</a>,
+ <a href="#7.24.3.10">7.24.3.10</a>).
+
+<h4><a name="J.5.17" href="#J.5.17">J.5.17 Math error reporting</a></h4>
+<p><!--para 1 -->
+ Functions declared in <a href="#7.3"><complex.h></a> and <a href="#7.12"><math.h></a> raise SIGFPE to report errors
+ instead of, or in addition to, setting errno or raising floating-point exceptions (<a href="#7.3">7.3</a>,
+ <a href="#7.12">7.12</a>).
+<!--page 528 -->
+
+<h2><a name="Bibliography" href="#Bibliography">Bibliography</a></h2>
+<ol>
+<li> ''The C Reference Manual'' by Dennis M. Ritchie, a version of which was
+ published in The C Programming Language by Brian W. Kernighan and Dennis
+ M. Ritchie, Prentice-Hall, Inc., (1978). Copyright owned by AT&T.
+<li> 1984 /usr/group Standard by the /usr/group Standards Committee, Santa Clara,
+ California, USA, November 1984.
+<li> ANSI X3/TR-1-82 (1982), American National Dictionary for Information
+ Processing Systems, Information Processing Systems Technical Report.
+<li> ANSI/IEEE 754-1985, American National Standard for Binary Floating-Point
+ Arithmetic.
+<li> ANSI/IEEE 854-1988, American National Standard for Radix-Independent
+ Floating-Point Arithmetic.
+<li> IEC 60559:1989, Binary floating-point arithmetic for microprocessor systems,
+ second edition (previously designated IEC 559:1989).
+<li> ISO 31-11:1992, Quantities and units -- Part 11: Mathematical signs and
+ symbols for use in the physical sciences and technology.
+<li> ISO/IEC 646:1991, Information technology -- ISO 7-bit coded character set for
+ information interchange.
+<li> ISO/IEC 2382-1:1993, Information technology -- Vocabulary -- Part 1:
+ Fundamental terms.
+<li> ISO 4217:1995, Codes for the representation of currencies and funds.
+<li> ISO 8601:1988, Data elements and interchange formats -- Information
+ interchange -- Representation of dates and times.
+<li> ISO/IEC 9899:1990, Programming languages -- C.
+<li> ISO/IEC 9899/COR1:1994, Technical Corrigendum 1.
+<li> ISO/IEC 9899/COR2:1996, Technical Corrigendum 2.
+<li> ISO/IEC 9899/AMD1:1995, Amendment 1 to ISO/IEC 9899:1990 C Integrity.
+<li> ISO/IEC 9945-2:1993, Information technology -- Portable Operating System
+ Interface (POSIX) -- Part 2: Shell and Utilities.
+<li> ISO/IEC TR 10176:1998, Information technology -- Guidelines for the
+ preparation of programming language standards.
+<li> ISO/IEC 10646-1:1993, Information technology -- Universal Multiple-Octet
+ Coded Character Set (UCS) -- Part 1: Architecture and Basic Multilingual Plane.
+<!--page 529 -->
+<li> ISO/IEC 10646-1/COR1:1996, Technical Corrigendum 1 to
+ ISO/IEC 10646-1:1993.
+<li> ISO/IEC 10646-1/COR2:1998, Technical Corrigendum 2 to
+ ISO/IEC 10646-1:1993.
+<li> ISO/IEC 10646-1/AMD1:1996, Amendment 1 to ISO/IEC 10646-1:1993
+ Transformation Format for 16 planes of group 00 (UTF-16).
+<li> ISO/IEC 10646-1/AMD2:1996, Amendment 2 to ISO/IEC 10646-1:1993 UCS
+ Transformation Format 8 (UTF-8).
+<li> ISO/IEC 10646-1/AMD3:1996, Amendment 3 to ISO/IEC 10646-1:1993.
+<li> ISO/IEC 10646-1/AMD4:1996, Amendment 4 to ISO/IEC 10646-1:1993.
+<li> ISO/IEC 10646-1/AMD5:1998, Amendment 5 to ISO/IEC 10646-1:1993 Hangul
+ syllables.
+<li> ISO/IEC 10646-1/AMD6:1997, Amendment 6 to ISO/IEC 10646-1:1993 Tibetan.
+<li> ISO/IEC 10646-1/AMD7:1997, Amendment 7 to ISO/IEC 10646-1:1993 33
+ additional characters.
+<li> ISO/IEC 10646-1/AMD8:1997, Amendment 8 to ISO/IEC 10646-1:1993.
+<li> ISO/IEC 10646-1/AMD9:1997, Amendment 9 to ISO/IEC 10646-1:1993
+ Identifiers for characters.
+<li> ISO/IEC 10646-1/AMD10:1998, Amendment 10 to ISO/IEC 10646-1:1993
+ Ethiopic.
+<li> ISO/IEC 10646-1/AMD11:1998, Amendment 11 to ISO/IEC 10646-1:1993
+ Unified Canadian Aboriginal Syllabics.
+<li> ISO/IEC 10646-1/AMD12:1998, Amendment 12 to ISO/IEC 10646-1:1993
+ Cherokee.
+<li> ISO/IEC 10967-1:1994, Information technology -- Language independent
+ arithmetic -- Part 1: Integer and floating point arithmetic.
+<!--page 530 -->
+<!--page 531 -->
+</ol>
+
+<h2><a name="Index" href="#Index">Index</a></h2>
+<pre>
+ ??? x ???, <a href="#3.18">3.18</a> , (comma punctuator), <a href="#6.5.2">6.5.2</a>, <a href="#6.7">6.7</a>, <a href="#6.7.2.1">6.7.2.1</a>, <a href="#6.7.2.2">6.7.2.2</a>,
+ <a href="#6.7.2.3">6.7.2.3</a>, <a href="#6.7.8">6.7.8</a>
+ ??? x ???, <a href="#3.19">3.19</a> - (subtraction operator), <a href="#6.5.6">6.5.6</a>, <a href="#F.3">F.3</a>, <a href="#G.5.2">G.5.2</a>
+ ! (logical negation operator), <a href="#6.5.3.3">6.5.3.3</a> - (unary minus operator), <a href="#6.5.3.3">6.5.3.3</a>, <a href="#F.3">F.3</a>
+ != (inequality operator), <a href="#6.5.9">6.5.9</a> -- (postfix decrement operator), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.4">6.5.2.4</a>
+ # operator, <a href="#6.10.3.2">6.10.3.2</a> -- (prefix decrement operator), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.1">6.5.3.1</a>
+ # preprocessing directive, <a href="#6.10.7">6.10.7</a> -= (subtraction assignment operator), <a href="#6.5.16.2">6.5.16.2</a>
+ # punctuator, <a href="#6.10">6.10</a> -> (structure/union pointer operator), <a href="#6.5.2.3">6.5.2.3</a>
+ ## operator, <a href="#6.10.3.3">6.10.3.3</a> . (structure/union member operator), <a href="#6.3.2.1">6.3.2.1</a>,
+ #define preprocessing directive, <a href="#6.10.3">6.10.3</a> <a href="#6.5.2.3">6.5.2.3</a>
+ #elif preprocessing directive, <a href="#6.10.1">6.10.1</a> . punctuator, <a href="#6.7.8">6.7.8</a>
+ #else preprocessing directive, <a href="#6.10.1">6.10.1</a> ... (ellipsis punctuator), <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.10.3">6.10.3</a>
+ #endif preprocessing directive, <a href="#6.10.1">6.10.1</a> / (division operator), <a href="#6.5.5">6.5.5</a>, <a href="#F.3">F.3</a>, <a href="#G.5.1">G.5.1</a>
+ #error preprocessing directive, <a href="#4">4</a>, <a href="#6.10.5">6.10.5</a> /* */ (comment delimiters), <a href="#6.4.9">6.4.9</a>
+ #if preprocessing directive, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, // (comment delimiter), <a href="#6.4.9">6.4.9</a>
+ <a href="#6.10.1">6.10.1</a>, <a href="#7.1.4">7.1.4</a> /= (division assignment operator), <a href="#6.5.16.2">6.5.16.2</a>
+ #ifdef preprocessing directive, <a href="#6.10.1">6.10.1</a> : (colon punctuator), <a href="#6.7.2.1">6.7.2.1</a>
+ #ifndef preprocessing directive, <a href="#6.10.1">6.10.1</a> :> (alternative spelling of ]), <a href="#6.4.6">6.4.6</a>
+ #include preprocessing directive, <a href="#5.1.1.2">5.1.1.2</a>, ; (semicolon punctuator), <a href="#6.7">6.7</a>, <a href="#6.7.2.1">6.7.2.1</a>, <a href="#6.8.3">6.8.3</a>,
+ <a href="#6.10.2">6.10.2</a> <a href="#6.8.5">6.8.5</a>, <a href="#6.8.6">6.8.6</a>
+ #line preprocessing directive, <a href="#6.10.4">6.10.4</a> < (less-than operator), <a href="#6.5.8">6.5.8</a>
+ #pragma preprocessing directive, <a href="#6.10.6">6.10.6</a> <% (alternative spelling of {), <a href="#6.4.6">6.4.6</a>
+ #undef preprocessing directive, <a href="#6.10.3.5">6.10.3.5</a>, <a href="#7.1.3">7.1.3</a>, <: (alternative spelling of [), <a href="#6.4.6">6.4.6</a>
+ <a href="#7.1.4">7.1.4</a> << (left-shift operator), <a href="#6.5.7">6.5.7</a>
+ % (remainder operator), <a href="#6.5.5">6.5.5</a> <<= (left-shift assignment operator), <a href="#6.5.16.2">6.5.16.2</a>
+ %: (alternative spelling of #), <a href="#6.4.6">6.4.6</a> <= (less-than-or-equal-to operator), <a href="#6.5.8">6.5.8</a>
+ %:%: (alternative spelling of ##), <a href="#6.4.6">6.4.6</a> <a href="#7.2"><assert.h></a> header, <a href="#7.2">7.2</a>, <a href="#B.1">B.1</a>
+ %= (remainder assignment operator), <a href="#6.5.16.2">6.5.16.2</a> <a href="#7.3"><complex.h></a> header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.3">7.3</a>, <a href="#7.22">7.22</a>,
+ %> (alternative spelling of }), <a href="#6.4.6">6.4.6</a> <a href="#7.26.1">7.26.1</a>, <a href="#G.6">G.6</a>, <a href="#J.5.17">J.5.17</a>
+ & (address operator), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> <a href="#7.4"><ctype.h></a> header, <a href="#7.4">7.4</a>, <a href="#7.26.2">7.26.2</a>
+ & (bitwise AND operator), <a href="#6.5.10">6.5.10</a> <a href="#7.5"><errno.h></a> header, <a href="#7.5">7.5</a>, <a href="#7.26.3">7.26.3</a>
+ && (logical AND operator), <a href="#6.5.13">6.5.13</a> <a href="#7.6"><fenv.h></a> header, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F">F</a>,
+ &= (bitwise AND assignment operator), <a href="#6.5.16.2">6.5.16.2</a> <a href="#H">H</a>
+ ' ' (space character), <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>, <a href="#7.4.1.3">7.4.1.3</a>, <a href="#7.7"><float.h></a> header, <a href="#4">4</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.7">7.7</a>, <a href="#7.20.1.3">7.20.1.3</a>,
+ <a href="#7.4.1.10">7.4.1.10</a>, <a href="#7.25.2.1.3">7.25.2.1.3</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>
+ ( ) (cast operator), <a href="#6.5.4">6.5.4</a> <a href="#7.8"><inttypes.h></a> header, <a href="#7.8">7.8</a>, <a href="#7.26.4">7.26.4</a>
+ ( ) (function-call operator), <a href="#6.5.2.2">6.5.2.2</a> <a href="#7.9"><iso646.h></a> header, <a href="#4">4</a>, <a href="#7.9">7.9</a>
+ ( ) (parentheses punctuator), <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.8.4">6.8.4</a>, <a href="#6.8.5">6.8.5</a> <a href="#7.10"><limits.h></a> header, <a href="#4">4</a>, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#6.2.5">6.2.5</a>, <a href="#7.10">7.10</a>
+ ( ){ } (compound-literal operator), <a href="#6.5.2.5">6.5.2.5</a> <a href="#7.11"><locale.h></a> header, <a href="#7.11">7.11</a>, <a href="#7.26.5">7.26.5</a>
+ * (asterisk punctuator), <a href="#6.7.5.1">6.7.5.1</a>, <a href="#6.7.5.2">6.7.5.2</a> <a href="#7.12"><math.h></a> header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.5">6.5</a>, <a href="#7.12">7.12</a>, <a href="#7.22">7.22</a>, <a href="#F">F</a>,
+ * (indirection operator), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> <a href="#F.9">F.9</a>, <a href="#J.5.17">J.5.17</a>
+ * (multiplication operator), <a href="#6.5.5">6.5.5</a>, <a href="#F.3">F.3</a>, <a href="#G.5.1">G.5.1</a> <a href="#7.13"><setjmp.h></a> header, <a href="#7.13">7.13</a>
+ *= (multiplication assignment operator), <a href="#6.5.16.2">6.5.16.2</a> <a href="#7.14"><signal.h></a> header, <a href="#7.14">7.14</a>, <a href="#7.26.6">7.26.6</a>
+ + (addition operator), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a>, <a href="#6.5.6">6.5.6</a>, <a href="#F.3">F.3</a>, <a href="#7.15"><stdarg.h></a> header, <a href="#4">4</a>, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#7.15">7.15</a>
+ <a href="#G.5.2">G.5.2</a> <a href="#7.16"><stdbool.h></a> header, <a href="#4">4</a>, <a href="#7.16">7.16</a>, <a href="#7.26.7">7.26.7</a>, <a href="#H">H</a>
+ + (unary plus operator), <a href="#6.5.3.3">6.5.3.3</a> <a href="#7.17"><stddef.h></a> header, <a href="#4">4</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.3.2.3">6.3.2.3</a>, <a href="#6.4.4.4">6.4.4.4</a>,
+ ++ (postfix increment operator), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.4">6.5.2.4</a> <a href="#6.4.5">6.4.5</a>, <a href="#6.5.3.4">6.5.3.4</a>, <a href="#6.5.6">6.5.6</a>, <a href="#7.17">7.17</a>
+ ++ (prefix increment operator), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.1">6.5.3.1</a> <a href="#7.18"><stdint.h></a> header, <a href="#4">4</a>, <a href="#5.2.4.2">5.2.4.2</a>, <a href="#6.10.1">6.10.1</a>, <a href="#7.8">7.8</a>,
+ += (addition assignment operator), <a href="#6.5.16.2">6.5.16.2</a> <a href="#7.18">7.18</a>, <a href="#7.26.8">7.26.8</a>
+ , (comma operator), <a href="#6.5.17">6.5.17</a>
+<!--page 532 -->
+ <a href="#7.19"><stdio.h></a> header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19">7.19</a>, <a href="#7.26.9">7.26.9</a>, <a href="#F">F</a> __cplusplus macro, <a href="#6.10.8">6.10.8</a>
+ <a href="#7.20"><stdlib.h></a> header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.20">7.20</a>, <a href="#7.26.10">7.26.10</a>, <a href="#F">F</a> __DATE__ macro, <a href="#6.10.8">6.10.8</a>
+ <a href="#7.21"><string.h></a> header, <a href="#7.21">7.21</a>, <a href="#7.26.11">7.26.11</a> __FILE__ macro, <a href="#6.10.8">6.10.8</a>, <a href="#7.2.1.1">7.2.1.1</a>
+ <a href="#7.22"><tgmath.h></a> header, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> __func__ identifier, <a href="#6.4.2.2">6.4.2.2</a>, <a href="#7.2.1.1">7.2.1.1</a>
+ <a href="#7.23"><time.h></a> header, <a href="#7.23">7.23</a> __LINE__ macro, <a href="#6.10.8">6.10.8</a>, <a href="#7.2.1.1">7.2.1.1</a>
+ <a href="#7.24"><wchar.h></a> header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.24">7.24</a>, __STDC_, <a href="#6.11.9">6.11.9</a>
+ <a href="#7.26.12">7.26.12</a>, <a href="#F">F</a> __STDC__ macro, <a href="#6.10.8">6.10.8</a>
+ <a href="#7.25"><wctype.h></a> header, <a href="#7.25">7.25</a>, <a href="#7.26.13">7.26.13</a> __STDC_CONSTANT_MACROS macro, <a href="#7.18.4">7.18.4</a>
+ = (equal-sign punctuator), <a href="#6.7">6.7</a>, <a href="#6.7.2.2">6.7.2.2</a>, <a href="#6.7.8">6.7.8</a> __STDC_FORMAT_MACROS macro, <a href="#7.8.1">7.8.1</a>
+ = (simple assignment operator), <a href="#6.5.16.1">6.5.16.1</a> __STDC_HOSTED__ macro, <a href="#6.10.8">6.10.8</a>
+ == (equality operator), <a href="#6.5.9">6.5.9</a> __STDC_IEC_559__ macro, <a href="#6.10.8">6.10.8</a>, <a href="#F.1">F.1</a>
+ > (greater-than operator), <a href="#6.5.8">6.5.8</a> __STDC_IEC_559_COMPLEX__ macro,
+ >= (greater-than-or-equal-to operator), <a href="#6.5.8">6.5.8</a> <a href="#6.10.8">6.10.8</a>, <a href="#G.1">G.1</a>
+ >> (right-shift operator), <a href="#6.5.7">6.5.7</a> __STDC_ISO_10646__ macro, <a href="#6.10.8">6.10.8</a>
+ >>= (right-shift assignment operator), <a href="#6.5.16.2">6.5.16.2</a> __STDC_LIMIT_MACROS macro, <a href="#7.18.2">7.18.2</a>,
+ ? : (conditional operator), <a href="#6.5.15">6.5.15</a> <a href="#7.18.3">7.18.3</a>
+ ?? (trigraph sequences), <a href="#5.2.1.1">5.2.1.1</a> __STDC_MB_MIGHT_NEQ_WC__ macro,
+ [ ] (array subscript operator), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> <a href="#6.10.8">6.10.8</a>, <a href="#7.17">7.17</a>
+ [ ] (brackets punctuator), <a href="#6.7.5.2">6.7.5.2</a>, <a href="#6.7.8">6.7.8</a> __STDC_VERSION__ macro, <a href="#6.10.8">6.10.8</a>
+ \ (backslash character), <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4.4.4">6.4.4.4</a> __TIME__ macro, <a href="#6.10.8">6.10.8</a>
+ \ (escape character), <a href="#6.4.4.4">6.4.4.4</a> __VA_ARGS__ identifier, <a href="#6.10.3">6.10.3</a>, <a href="#6.10.3.1">6.10.3.1</a>
+ \" (double-quote escape sequence), <a href="#6.4.4.4">6.4.4.4</a>, _Bool type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.2">6.3.1.2</a>, <a href="#6.7.2">6.7.2</a>
+ <a href="#6.4.5">6.4.5</a>, <a href="#6.10.9">6.10.9</a> _Bool type conversions, <a href="#6.3.1.2">6.3.1.2</a>
+ \\ (backslash escape sequence), <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.10.9">6.10.9</a> _Complex types, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2">6.7.2</a>, <a href="#7.3.1">7.3.1</a>, <a href="#G">G</a>
+ \' (single-quote escape sequence), <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.4.5">6.4.5</a> _Complex_I macro, <a href="#7.3.1">7.3.1</a>
+ \0 (null character), <a href="#5.2.1">5.2.1</a>, <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.4.5">6.4.5</a> _Exit function, <a href="#7.20.4.4">7.20.4.4</a>
+ padding of binary stream, <a href="#7.19.2">7.19.2</a> _Imaginary keyword, <a href="#G.2">G.2</a>
+ \? (question-mark escape sequence), <a href="#6.4.4.4">6.4.4.4</a> _Imaginary types, <a href="#7.3.1">7.3.1</a>, <a href="#G">G</a>
+ \a (alert escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a> _Imaginary_I macro, <a href="#7.3.1">7.3.1</a>, <a href="#G.6">G.6</a>
+ \b (backspace escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a> _IOFBF macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.5">7.19.5.5</a>, <a href="#7.19.5.6">7.19.5.6</a>
+ \f (form-feed escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>, _IOLBF macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.6">7.19.5.6</a>
+ <a href="#7.4.1.10">7.4.1.10</a> _IONBF macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.5">7.19.5.5</a>, <a href="#7.19.5.6">7.19.5.6</a>
+ \n (new-line escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>, _Pragma operator, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.10.9">6.10.9</a>
+ <a href="#7.4.1.10">7.4.1.10</a> { } (braces punctuator), <a href="#6.7.2.2">6.7.2.2</a>, <a href="#6.7.2.3">6.7.2.3</a>, <a href="#6.7.8">6.7.8</a>,
+ \octal digits (octal-character escape sequence), <a href="#6.8.2">6.8.2</a>
+ <a href="#6.4.4.4">6.4.4.4</a> { } (compound-literal operator), <a href="#6.5.2.5">6.5.2.5</a>
+ \r (carriage-return escape sequence), <a href="#5.2.2">5.2.2</a>, | (bitwise inclusive OR operator), <a href="#6.5.12">6.5.12</a>
+ <a href="#6.4.4.4">6.4.4.4</a>, <a href="#7.4.1.10">7.4.1.10</a> |= (bitwise inclusive OR assignment operator),
+ \t (horizontal-tab escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.5.16.2">6.5.16.2</a>
+ <a href="#6.4.4.4">6.4.4.4</a>, <a href="#7.4.1.3">7.4.1.3</a>, <a href="#7.4.1.10">7.4.1.10</a>, <a href="#7.25.2.1.3">7.25.2.1.3</a> || (logical OR operator), <a href="#6.5.14">6.5.14</a>
+ \U (universal character names), <a href="#6.4.3">6.4.3</a> ~ (bitwise complement operator), <a href="#6.5.3.3">6.5.3.3</a>
+ \u (universal character names), <a href="#6.4.3">6.4.3</a>
+ \v (vertical-tab escape sequence), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>, abort function, <a href="#7.2.1.1">7.2.1.1</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.19.3">7.19.3</a>,
+ <a href="#7.4.1.10">7.4.1.10</a> <a href="#7.20.4.1">7.20.4.1</a>
+ \x hexadecimal digits (hexadecimal-character abs function, <a href="#7.20.6.1">7.20.6.1</a>
+ escape sequence), <a href="#6.4.4.4">6.4.4.4</a> absolute-value functions
+ ^ (bitwise exclusive OR operator), <a href="#6.5.11">6.5.11</a> complex, <a href="#7.3.8">7.3.8</a>, <a href="#G.6.4">G.6.4</a>
+ ^= (bitwise exclusive OR assignment operator), integer, <a href="#7.8.2.1">7.8.2.1</a>, <a href="#7.20.6.1">7.20.6.1</a>
+ <a href="#6.5.16.2">6.5.16.2</a> real, <a href="#7.12.7">7.12.7</a>, <a href="#F.9.4">F.9.4</a>
+ __bool_true_false_are_defined abstract declarator, <a href="#6.7.6">6.7.6</a>
+ macro, <a href="#7.16">7.16</a> abstract machine, <a href="#5.1.2.3">5.1.2.3</a>
+<!--page 533 -->
+ access, <a href="#3.1">3.1</a>, <a href="#6.7.3">6.7.3</a> array
+ accuracy, see floating-point accuracy argument, <a href="#6.9.1">6.9.1</a>
+ acos functions, <a href="#7.12.4.1">7.12.4.1</a>, <a href="#F.9.1.1">F.9.1.1</a> declarator, <a href="#6.7.5.2">6.7.5.2</a>
+ acos type-generic macro, <a href="#7.22">7.22</a> initialization, <a href="#6.7.8">6.7.8</a>
+ acosh functions, <a href="#7.12.5.1">7.12.5.1</a>, <a href="#F.9.2.1">F.9.2.1</a> multidimensional, <a href="#6.5.2.1">6.5.2.1</a>
+ acosh type-generic macro, <a href="#7.22">7.22</a> parameter, <a href="#6.9.1">6.9.1</a>
+ active position, <a href="#5.2.2">5.2.2</a> storage order, <a href="#6.5.2.1">6.5.2.1</a>
+ actual argument, <a href="#3.3">3.3</a> subscript operator ([ ]), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a>
+ actual parameter (deprecated), <a href="#3.3">3.3</a> subscripting, <a href="#6.5.2.1">6.5.2.1</a>
+ addition assignment operator (+=), <a href="#6.5.16.2">6.5.16.2</a> type, <a href="#6.2.5">6.2.5</a>
+ addition operator (+), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a>, <a href="#6.5.6">6.5.6</a>, <a href="#F.3">F.3</a>, type conversion, <a href="#6.3.2.1">6.3.2.1</a>
+ <a href="#G.5.2">G.5.2</a> variable length, <a href="#6.7.5">6.7.5</a>, <a href="#6.7.5.2">6.7.5.2</a>
+ additive expressions, <a href="#6.5.6">6.5.6</a>, <a href="#G.5.2">G.5.2</a> arrow operator (->), <a href="#6.5.2.3">6.5.2.3</a>
+ address constant, <a href="#6.6">6.6</a> as-if rule, <a href="#5.1.2.3">5.1.2.3</a>
+ address operator (&), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> ASCII code set, <a href="#5.2.1.1">5.2.1.1</a>
+ aggregate initialization, <a href="#6.7.8">6.7.8</a> asctime function, <a href="#7.23.3.1">7.23.3.1</a>
+ aggregate types, <a href="#6.2.5">6.2.5</a> asin functions, <a href="#7.12.4.2">7.12.4.2</a>, <a href="#F.9.1.2">F.9.1.2</a>
+ alert escape sequence (\a), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a> asin type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
+ aliasing, <a href="#6.5">6.5</a> asinh functions, <a href="#7.12.5.2">7.12.5.2</a>, <a href="#F.9.2.2">F.9.2.2</a>
+ alignment, <a href="#3.2">3.2</a> asinh type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
+ pointer, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.2.3">6.3.2.3</a> asm keyword, <a href="#J.5.10">J.5.10</a>
+ structure/union member, <a href="#6.7.2.1">6.7.2.1</a> assert macro, <a href="#7.2.1.1">7.2.1.1</a>
+ allocated storage, order and contiguity, <a href="#7.20.3">7.20.3</a> assert.h header, <a href="#7.2">7.2</a>, <a href="#B.1">B.1</a>
+ and macro, <a href="#7.9">7.9</a> assignment
+ AND operators compound, <a href="#6.5.16.2">6.5.16.2</a>
+ bitwise (&), <a href="#6.5.10">6.5.10</a> conversion, <a href="#6.5.16.1">6.5.16.1</a>
+ bitwise assignment (&=), <a href="#6.5.16.2">6.5.16.2</a> expression, <a href="#6.5.16">6.5.16</a>
+ logical (&&), <a href="#6.5.13">6.5.13</a> operators, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.16">6.5.16</a>
+ and_eq macro, <a href="#7.9">7.9</a> simple, <a href="#6.5.16.1">6.5.16.1</a>
+ ANSI/IEEE 754, <a href="#F.1">F.1</a> associativity of operators, <a href="#6.5">6.5</a>
+ ANSI/IEEE 854, <a href="#F.1">F.1</a> asterisk punctuator (*), <a href="#6.7.5.1">6.7.5.1</a>, <a href="#6.7.5.2">6.7.5.2</a>
+ argc (main function parameter), <a href="#5.1.2.2.1">5.1.2.2.1</a> atan functions, <a href="#7.12.4.3">7.12.4.3</a>, <a href="#F.9.1.3">F.9.1.3</a>
+ argument, <a href="#3.3">3.3</a> atan type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
+ array, <a href="#6.9.1">6.9.1</a> atan2 functions, <a href="#7.12.4.4">7.12.4.4</a>, <a href="#F.9.1.4">F.9.1.4</a>
+ default promotions, <a href="#6.5.2.2">6.5.2.2</a> atan2 type-generic macro, <a href="#7.22">7.22</a>
+ function, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.9.1">6.9.1</a> atanh functions, <a href="#7.12.5.3">7.12.5.3</a>, <a href="#F.9.2.3">F.9.2.3</a>
+ macro, substitution, <a href="#6.10.3.1">6.10.3.1</a> atanh type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
+ argument, complex, <a href="#7.3.9.1">7.3.9.1</a> atexit function, <a href="#7.20.4.2">7.20.4.2</a>, <a href="#7.20.4.3">7.20.4.3</a>, <a href="#7.20.4.4">7.20.4.4</a>,
+ argv (main function parameter), <a href="#5.1.2.2.1">5.1.2.2.1</a> <a href="#J.5.13">J.5.13</a>
+ arithmetic constant expression, <a href="#6.6">6.6</a> atof function, <a href="#7.20.1">7.20.1</a>, <a href="#7.20.1.1">7.20.1.1</a>
+ arithmetic conversions, usual, see usual arithmetic atoi function, <a href="#7.20.1">7.20.1</a>, <a href="#7.20.1.2">7.20.1.2</a>
+ conversions atol function, <a href="#7.20.1">7.20.1</a>, <a href="#7.20.1.2">7.20.1.2</a>
+ arithmetic operators atoll function, <a href="#7.20.1">7.20.1</a>, <a href="#7.20.1.2">7.20.1.2</a>
+ additive, <a href="#6.5.6">6.5.6</a>, <a href="#G.5.2">G.5.2</a> auto storage-class specifier, <a href="#6.7.1">6.7.1</a>, <a href="#6.9">6.9</a>
+ bitwise, <a href="#6.5.10">6.5.10</a>, <a href="#6.5.11">6.5.11</a>, <a href="#6.5.12">6.5.12</a> automatic storage duration, <a href="#5.2.3">5.2.3</a>, <a href="#6.2.4">6.2.4</a>
+ increment and decrement, <a href="#6.5.2.4">6.5.2.4</a>, <a href="#6.5.3.1">6.5.3.1</a>
+ multiplicative, <a href="#6.5.5">6.5.5</a>, <a href="#G.5.1">G.5.1</a> backslash character (\), <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4.4.4">6.4.4.4</a>
+ shift, <a href="#6.5.7">6.5.7</a> backslash escape sequence (\\), <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.10.9">6.10.9</a>
+ unary, <a href="#6.5.3.3">6.5.3.3</a> backspace escape sequence (\b), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>
+ arithmetic types, <a href="#6.2.5">6.2.5</a> basic character set, <a href="#3.6">3.6</a>, <a href="#3.7.2">3.7.2</a>, <a href="#5.2.1">5.2.1</a>
+ arithmetic, pointer, <a href="#6.5.6">6.5.6</a> basic types, <a href="#6.2.5">6.2.5</a>
+<!--page 534 -->
+ behavior, <a href="#3.4">3.4</a> call by value, <a href="#6.5.2.2">6.5.2.2</a>
+ binary streams, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.19.9.2">7.19.9.2</a>, calloc function, <a href="#7.20.3">7.20.3</a>, <a href="#7.20.3.1">7.20.3.1</a>, <a href="#7.20.3.2">7.20.3.2</a>,
+ <a href="#7.19.9.4">7.19.9.4</a> <a href="#7.20.3.4">7.20.3.4</a>
+ bit, <a href="#3.5">3.5</a> carg functions, <a href="#7.3.9.1">7.3.9.1</a>, <a href="#G.6">G.6</a>
+ high order, <a href="#3.6">3.6</a> carg type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
+ low order, <a href="#3.6">3.6</a> carriage-return escape sequence (\r), <a href="#5.2.2">5.2.2</a>,
+ bit-field, <a href="#6.7.2.1">6.7.2.1</a> <a href="#6.4.4.4">6.4.4.4</a>, <a href="#7.4.1.10">7.4.1.10</a>
+ bitand macro, <a href="#7.9">7.9</a> case label, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.4.2">6.8.4.2</a>
+ bitor macro, <a href="#7.9">7.9</a> case mapping functions
+ bitwise operators, <a href="#6.5">6.5</a> character, <a href="#7.4.2">7.4.2</a>
+ AND, <a href="#6.5.10">6.5.10</a> wide character, <a href="#7.25.3.1">7.25.3.1</a>
+ AND assignment (&=), <a href="#6.5.16.2">6.5.16.2</a> extensible, <a href="#7.25.3.2">7.25.3.2</a>
+ complement (~), <a href="#6.5.3.3">6.5.3.3</a> casin functions, <a href="#7.3.5.2">7.3.5.2</a>, <a href="#G.6">G.6</a>
+ exclusive OR, <a href="#6.5.11">6.5.11</a> type-generic macro for, <a href="#7.22">7.22</a>
+ exclusive OR assignment (^=), <a href="#6.5.16.2">6.5.16.2</a> casinh functions, <a href="#7.3.6.2">7.3.6.2</a>, <a href="#G.6.2.2">G.6.2.2</a>
+ inclusive OR, <a href="#6.5.12">6.5.12</a> type-generic macro for, <a href="#7.22">7.22</a>
+ inclusive OR assignment (|=), <a href="#6.5.16.2">6.5.16.2</a> cast expression, <a href="#6.5.4">6.5.4</a>
+ shift, <a href="#6.5.7">6.5.7</a> cast operator (( )), <a href="#6.5.4">6.5.4</a>
+ blank character, <a href="#7.4.1.3">7.4.1.3</a> catan functions, <a href="#7.3.5.3">7.3.5.3</a>, <a href="#G.6">G.6</a>
+ block, <a href="#6.8">6.8</a>, <a href="#6.8.2">6.8.2</a>, <a href="#6.8.4">6.8.4</a>, <a href="#6.8.5">6.8.5</a> type-generic macro for, <a href="#7.22">7.22</a>
+ block scope, <a href="#6.2.1">6.2.1</a> catanh functions, <a href="#7.3.6.3">7.3.6.3</a>, <a href="#G.6.2.3">G.6.2.3</a>
+ block structure, <a href="#6.2.1">6.2.1</a> type-generic macro for, <a href="#7.22">7.22</a>
+ bold type convention, <a href="#6.1">6.1</a> cbrt functions, <a href="#7.12.7.1">7.12.7.1</a>, <a href="#F.9.4.1">F.9.4.1</a>
+ bool macro, <a href="#7.16">7.16</a> cbrt type-generic macro, <a href="#7.22">7.22</a>
+ boolean type, <a href="#6.3.1.2">6.3.1.2</a> ccos functions, <a href="#7.3.5.4">7.3.5.4</a>, <a href="#G.6">G.6</a>
+ boolean type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.2">6.3.1.2</a> type-generic macro for, <a href="#7.22">7.22</a>
+ braces punctuator ({ }), <a href="#6.7.2.2">6.7.2.2</a>, <a href="#6.7.2.3">6.7.2.3</a>, <a href="#6.7.8">6.7.8</a>, ccosh functions, <a href="#7.3.6.4">7.3.6.4</a>, <a href="#G.6.2.4">G.6.2.4</a>
+ <a href="#6.8.2">6.8.2</a> type-generic macro for, <a href="#7.22">7.22</a>
+ brackets operator ([ ]), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> ceil functions, <a href="#7.12.9.1">7.12.9.1</a>, <a href="#F.9.6.1">F.9.6.1</a>
+ brackets punctuator ([ ]), <a href="#6.7.5.2">6.7.5.2</a>, <a href="#6.7.8">6.7.8</a> ceil type-generic macro, <a href="#7.22">7.22</a>
+ branch cuts, <a href="#7.3.3">7.3.3</a> cerf function, <a href="#7.26.1">7.26.1</a>
+ break statement, <a href="#6.8.6.3">6.8.6.3</a> cerfc function, <a href="#7.26.1">7.26.1</a>
+ broken-down time, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.3">7.23.2.3</a>, <a href="#7.23.3">7.23.3</a>, cexp functions, <a href="#7.3.7.1">7.3.7.1</a>, <a href="#G.6.3.1">G.6.3.1</a>
+ <a href="#7.23.3.1">7.23.3.1</a>, <a href="#7.23.3.3">7.23.3.3</a>, <a href="#7.23.3.4">7.23.3.4</a>, <a href="#7.23.3.5">7.23.3.5</a> type-generic macro for, <a href="#7.22">7.22</a>
+ bsearch function, <a href="#7.20.5">7.20.5</a>, <a href="#7.20.5.1">7.20.5.1</a> cexp2 function, <a href="#7.26.1">7.26.1</a>
+ btowc function, <a href="#7.24.6.1.1">7.24.6.1.1</a> cexpm1 function, <a href="#7.26.1">7.26.1</a>
+ BUFSIZ macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.5.5">7.19.5.5</a> char type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.7.2">6.7.2</a>
+ byte, <a href="#3.6">3.6</a>, <a href="#6.5.3.4">6.5.3.4</a> char type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.3.1.4">6.3.1.4</a>,
+ byte input/output functions, <a href="#7.19.1">7.19.1</a> <a href="#6.3.1.8">6.3.1.8</a>
+ byte-oriented stream, <a href="#7.19.2">7.19.2</a> CHAR_BIT macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
+ CHAR_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
+ <a href="#C">C</a> program, <a href="#5.1.1.1">5.1.1.1</a> CHAR_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
+ <a href="#C">C</a>++, <a href="#7.8.1">7.8.1</a>, <a href="#7.18.2">7.18.2</a>, <a href="#7.18.3">7.18.3</a>, <a href="#7.18.4">7.18.4</a> character, <a href="#3.7">3.7</a>, <a href="#3.7.1">3.7.1</a>
+ cabs functions, <a href="#7.3.8.1">7.3.8.1</a>, <a href="#G.6">G.6</a> character array initialization, <a href="#6.7.8">6.7.8</a>
+ type-generic macro for, <a href="#7.22">7.22</a> character case mapping functions, <a href="#7.4.2">7.4.2</a>
+ cacos functions, <a href="#7.3.5.1">7.3.5.1</a>, <a href="#G.6.1.1">G.6.1.1</a> wide character, <a href="#7.25.3.1">7.25.3.1</a>
+ type-generic macro for, <a href="#7.22">7.22</a> extensible, <a href="#7.25.3.2">7.25.3.2</a>
+ cacosh functions, <a href="#7.3.6.1">7.3.6.1</a>, <a href="#G.6.2.1">G.6.2.1</a> character classification functions, <a href="#7.4.1">7.4.1</a>
+ type-generic macro for, <a href="#7.22">7.22</a> wide character, <a href="#7.25.2.1">7.25.2.1</a>
+ calendar time, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.2">7.23.2.2</a>, <a href="#7.23.2.3">7.23.2.3</a>, <a href="#7.23.2.4">7.23.2.4</a>, extensible, <a href="#7.25.2.2">7.25.2.2</a>
+ <a href="#7.23.3.2">7.23.3.2</a>, <a href="#7.23.3.3">7.23.3.3</a>, <a href="#7.23.3.4">7.23.3.4</a> character constant, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4.4.4">6.4.4.4</a>
+<!--page 535 -->
+ character display semantics, <a href="#5.2.2">5.2.2</a> complex.h header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.3">7.3</a>, <a href="#7.22">7.22</a>, <a href="#7.26.1">7.26.1</a>,
+ character handling header, <a href="#7.4">7.4</a>, <a href="#7.11.1.1">7.11.1.1</a> <a href="#G.6">G.6</a>, <a href="#J.5.17">J.5.17</a>
+ character input/output functions, <a href="#7.19.7">7.19.7</a> compliance, see conformance
+ wide character, <a href="#7.24.3">7.24.3</a> components of time, <a href="#7.23.1">7.23.1</a>
+ character sets, <a href="#5.2.1">5.2.1</a> composite type, <a href="#6.2.7">6.2.7</a>
+ character string literal, see string literal compound assignment, <a href="#6.5.16.2">6.5.16.2</a>
+ character type conversion, <a href="#6.3.1.1">6.3.1.1</a> compound literals, <a href="#6.5.2.5">6.5.2.5</a>
+ character types, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.8">6.7.8</a> compound statement, <a href="#6.8.2">6.8.2</a>
+ cimag functions, <a href="#7.3.9.2">7.3.9.2</a>, <a href="#7.3.9.4">7.3.9.4</a>, <a href="#G.6">G.6</a> compound-literal operator (( ){ }), <a href="#6.5.2.5">6.5.2.5</a>
+ cimag type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> concatenation functions
+ cis function, <a href="#G.6">G.6</a> string, <a href="#7.21.3">7.21.3</a>
+ classification functions wide string, <a href="#7.24.4.3">7.24.4.3</a>
+ character, <a href="#7.4.1">7.4.1</a> concatenation, preprocessing, see preprocessing
+ floating-point, <a href="#7.12.3">7.12.3</a> concatenation
+ wide character, <a href="#7.25.2.1">7.25.2.1</a> conceptual models, <a href="#5.1">5.1</a>
+ extensible, <a href="#7.25.2.2">7.25.2.2</a> conditional inclusion, <a href="#6.10.1">6.10.1</a>
+ clearerr function, <a href="#7.19.10.1">7.19.10.1</a> conditional operator (? :), <a href="#6.5.15">6.5.15</a>
+ clgamma function, <a href="#7.26.1">7.26.1</a> conformance, <a href="#4">4</a>
+ clock function, <a href="#7.23.2.1">7.23.2.1</a> conj functions, <a href="#7.3.9.3">7.3.9.3</a>, <a href="#G.6">G.6</a>
+ clock_t type, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.1">7.23.2.1</a> conj type-generic macro, <a href="#7.22">7.22</a>
+ CLOCKS_PER_SEC macro, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.1">7.23.2.1</a> const type qualifier, <a href="#6.7.3">6.7.3</a>
+ clog functions, <a href="#7.3.7.2">7.3.7.2</a>, <a href="#G.6.3.2">G.6.3.2</a> const-qualified type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.7.3">6.7.3</a>
+ type-generic macro for, <a href="#7.22">7.22</a> constant expression, <a href="#6.6">6.6</a>, <a href="#F.7.4">F.7.4</a>
+ clog10 function, <a href="#7.26.1">7.26.1</a> constants, <a href="#6.4.4">6.4.4</a>
+ clog1p function, <a href="#7.26.1">7.26.1</a> as primary expression, <a href="#6.5.1">6.5.1</a>
+ clog2 function, <a href="#7.26.1">7.26.1</a> character, <a href="#6.4.4.4">6.4.4.4</a>
+ collating sequences, <a href="#5.2.1">5.2.1</a> enumeration, <a href="#6.2.1">6.2.1</a>, <a href="#6.4.4.3">6.4.4.3</a>
+ colon punctuator (:), <a href="#6.7.2.1">6.7.2.1</a> floating, <a href="#6.4.4.2">6.4.4.2</a>
+ comma operator (,), <a href="#6.5.17">6.5.17</a> hexadecimal, <a href="#6.4.4.1">6.4.4.1</a>
+ comma punctuator (,), <a href="#6.5.2">6.5.2</a>, <a href="#6.7">6.7</a>, <a href="#6.7.2.1">6.7.2.1</a>, <a href="#6.7.2.2">6.7.2.2</a>, integer, <a href="#6.4.4.1">6.4.4.1</a>
+ <a href="#6.7.2.3">6.7.2.3</a>, <a href="#6.7.8">6.7.8</a> octal, <a href="#6.4.4.1">6.4.4.1</a>
+ command processor, <a href="#7.20.4.6">7.20.4.6</a> constraint, <a href="#3.8">3.8</a>, <a href="#4">4</a>
+ comment delimiters (/* */ and //), <a href="#6.4.9">6.4.9</a> content of structure/union/enumeration, <a href="#6.7.2.3">6.7.2.3</a>
+ comments, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.4">6.4</a>, <a href="#6.4.9">6.4.9</a> contiguity of allocated storage, <a href="#7.20.3">7.20.3</a>
+ common extensions, <a href="#J.5">J.5</a> continue statement, <a href="#6.8.6.2">6.8.6.2</a>
+ common initial sequence, <a href="#6.5.2.3">6.5.2.3</a> contracted expression, <a href="#6.5">6.5</a>, <a href="#7.12.2">7.12.2</a>, <a href="#F.6">F.6</a>
+ common real type, <a href="#6.3.1.8">6.3.1.8</a> control character, <a href="#5.2.1">5.2.1</a>, <a href="#7.4">7.4</a>
+ common warnings, <a href="#I">I</a> control wide character, <a href="#7.25.2">7.25.2</a>
+ comparison functions, <a href="#7.20.5">7.20.5</a>, <a href="#7.20.5.1">7.20.5.1</a>, <a href="#7.20.5.2">7.20.5.2</a> conversion, <a href="#6.3">6.3</a>
+ string, <a href="#7.21.4">7.21.4</a> arithmetic operands, <a href="#6.3.1">6.3.1</a>
+ wide string, <a href="#7.24.4.4">7.24.4.4</a> array argument, <a href="#6.9.1">6.9.1</a> *
+ comparison macros, <a href="#7.12.14">7.12.14</a> array parameter, <a href="#6.9.1">6.9.1</a>
+ comparison, pointer, <a href="#6.5.8">6.5.8</a> arrays, <a href="#6.3.2.1">6.3.2.1</a>
+ compatible type, <a href="#6.2.7">6.2.7</a>, <a href="#6.7.2">6.7.2</a>, <a href="#6.7.3">6.7.3</a>, <a href="#6.7.5">6.7.5</a> boolean, <a href="#6.3.1.2">6.3.1.2</a>
+ compl macro, <a href="#7.9">7.9</a> boolean, characters, and integers, <a href="#6.3.1.1">6.3.1.1</a>
+ complement operator (~), <a href="#6.5.3.3">6.5.3.3</a> by assignment, <a href="#6.5.16.1">6.5.16.1</a>
+ complex macro, <a href="#7.3.1">7.3.1</a> by return statement, <a href="#6.8.6.4">6.8.6.4</a>
+ complex numbers, <a href="#6.2.5">6.2.5</a>, <a href="#G">G</a> complex types, <a href="#6.3.1.6">6.3.1.6</a>
+ complex type conversion, <a href="#6.3.1.6">6.3.1.6</a>, <a href="#6.3.1.7">6.3.1.7</a> explicit, <a href="#6.3">6.3</a>
+ complex type domain, <a href="#6.2.5">6.2.5</a> function, <a href="#6.3.2.1">6.3.2.1</a>
+ complex types, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2">6.7.2</a>, <a href="#G">G</a> function argument, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.9.1">6.9.1</a>
+<!--page 536 -->
+ function designators, <a href="#6.3.2.1">6.3.2.1</a> type-generic macro for, <a href="#7.22">7.22</a>
+ function parameter, <a href="#6.9.1">6.9.1</a> csinh functions, <a href="#7.3.6.5">7.3.6.5</a>, <a href="#G.6.2.5">G.6.2.5</a>
+ imaginary, <a href="#G.4.1">G.4.1</a> type-generic macro for, <a href="#7.22">7.22</a>
+ imaginary and complex, <a href="#G.4.3">G.4.3</a> csqrt functions, <a href="#7.3.8.3">7.3.8.3</a>, <a href="#G.6.4.2">G.6.4.2</a>
+ implicit, <a href="#6.3">6.3</a> type-generic macro for, <a href="#7.22">7.22</a>
+ lvalues, <a href="#6.3.2.1">6.3.2.1</a> ctan functions, <a href="#7.3.5.6">7.3.5.6</a>, <a href="#G.6">G.6</a>
+ pointer, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.3.2.3">6.3.2.3</a> type-generic macro for, <a href="#7.22">7.22</a>
+ real and complex, <a href="#6.3.1.7">6.3.1.7</a> ctanh functions, <a href="#7.3.6.6">7.3.6.6</a>, <a href="#G.6.2.6">G.6.2.6</a>
+ real and imaginary, <a href="#G.4.2">G.4.2</a> type-generic macro for, <a href="#7.22">7.22</a>
+ real floating and integer, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#F.3">F.3</a>, <a href="#F.4">F.4</a> ctgamma function, <a href="#7.26.1">7.26.1</a>
+ real floating types, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#F.3">F.3</a> ctime function, <a href="#7.23.3.2">7.23.3.2</a>
+ signed and unsigned integers, <a href="#6.3.1.3">6.3.1.3</a> ctype.h header, <a href="#7.4">7.4</a>, <a href="#7.26.2">7.26.2</a>
+ usual arithmetic, see usual arithmetic current object, <a href="#6.7.8">6.7.8</a>
+ conversions CX_LIMITED_RANGE pragma, <a href="#6.10.6">6.10.6</a>, <a href="#7.3.4">7.3.4</a>
+ void type, <a href="#6.3.2.2">6.3.2.2</a>
+ conversion functions data stream, see streams
+ multibyte/wide character, <a href="#7.20.7">7.20.7</a> date and time header, <a href="#7.23">7.23</a>
+ extended, <a href="#7.24.6">7.24.6</a> Daylight Saving Time, <a href="#7.23.1">7.23.1</a>
+ restartable, <a href="#7.24.6.3">7.24.6.3</a> DBL_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ multibyte/wide string, <a href="#7.20.8">7.20.8</a> DBL_EPSILON macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ restartable, <a href="#7.24.6.4">7.24.6.4</a> DBL_MANT_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ numeric, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.20.1">7.20.1</a> DBL_MAX macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ wide string, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.24.4.1">7.24.4.1</a> DBL_MAX_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ single byte/wide character, <a href="#7.24.6.1">7.24.6.1</a> DBL_MAX_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ time, <a href="#7.23.3">7.23.3</a> DBL_MIN macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ wide character, <a href="#7.24.5">7.24.5</a> DBL_MIN_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ conversion specifier, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, DBL_MIN_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ <a href="#7.24.2.2">7.24.2.2</a> decimal constant, <a href="#6.4.4.1">6.4.4.1</a>
+ conversion state, <a href="#7.20.7">7.20.7</a>, <a href="#7.24.6">7.24.6</a>, <a href="#7.24.6.2.1">7.24.6.2.1</a>, decimal digit, <a href="#5.2.1">5.2.1</a>
+ <a href="#7.24.6.3">7.24.6.3</a>, <a href="#7.24.6.3.2">7.24.6.3.2</a>, <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4">7.24.6.4</a>, decimal-point character, <a href="#7.1.1">7.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
+ <a href="#7.24.6.4.1">7.24.6.4.1</a>, <a href="#7.24.6.4.2">7.24.6.4.2</a> DECIMAL_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19.6.1">7.19.6.1</a>,
+ conversion state functions, <a href="#7.24.6.2">7.24.6.2</a> <a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#F.5">F.5</a>
+ copying functions declaration specifiers, <a href="#6.7">6.7</a>
+ string, <a href="#7.21.2">7.21.2</a> declarations, <a href="#6.7">6.7</a>
+ wide string, <a href="#7.24.4.2">7.24.4.2</a> function, <a href="#6.7.5.3">6.7.5.3</a>
+ copysign functions, <a href="#7.3.9.4">7.3.9.4</a>, <a href="#7.12.11.1">7.12.11.1</a>, <a href="#F.3">F.3</a>, pointer, <a href="#6.7.5.1">6.7.5.1</a>
+ <a href="#F.9.8.1">F.9.8.1</a> structure/union, <a href="#6.7.2.1">6.7.2.1</a>
+ copysign type-generic macro, <a href="#7.22">7.22</a> typedef, <a href="#6.7.7">6.7.7</a>
+ correctly rounded result, <a href="#3.9">3.9</a> declarator, <a href="#6.7.5">6.7.5</a>
+ corresponding real type, <a href="#6.2.5">6.2.5</a> abstract, <a href="#6.7.6">6.7.6</a>
+ cos functions, <a href="#7.12.4.5">7.12.4.5</a>, <a href="#F.9.1.5">F.9.1.5</a> declarator type derivation, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.5">6.7.5</a>
+ cos type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> decrement operators, see arithmetic operators,
+ cosh functions, <a href="#7.12.5.4">7.12.5.4</a>, <a href="#F.9.2.4">F.9.2.4</a> increment and decrement
+ cosh type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> default argument promotions, <a href="#6.5.2.2">6.5.2.2</a>
+ cpow functions, <a href="#7.3.8.2">7.3.8.2</a>, <a href="#G.6.4.1">G.6.4.1</a> default initialization, <a href="#6.7.8">6.7.8</a>
+ type-generic macro for, <a href="#7.22">7.22</a> default label, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.4.2">6.8.4.2</a>
+ cproj functions, <a href="#7.3.9.4">7.3.9.4</a>, <a href="#G.6">G.6</a> define preprocessing directive, <a href="#6.10.3">6.10.3</a>
+ cproj type-generic macro, <a href="#7.22">7.22</a> defined operator, <a href="#6.10.1">6.10.1</a>, <a href="#6.10.8">6.10.8</a>
+ creal functions, <a href="#7.3.9.5">7.3.9.5</a>, <a href="#G.6">G.6</a> definition, <a href="#6.7">6.7</a>
+ creal type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> function, <a href="#6.9.1">6.9.1</a>
+ csin functions, <a href="#7.3.5.5">7.3.5.5</a>, <a href="#G.6">G.6</a> derived declarator types, <a href="#6.2.5">6.2.5</a>
+<!--page 537 -->
+ derived types, <a href="#6.2.5">6.2.5</a> end-of-file indicator, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.1">7.19.7.1</a>,
+ designated initializer, <a href="#6.7.8">6.7.8</a> <a href="#7.19.7.5">7.19.7.5</a>, <a href="#7.19.7.6">7.19.7.6</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.19.9.2">7.19.9.2</a>,
+ destringizing, <a href="#6.10.9">6.10.9</a> <a href="#7.19.9.3">7.19.9.3</a>, <a href="#7.19.10.1">7.19.10.1</a>, <a href="#7.19.10.2">7.19.10.2</a>, <a href="#7.24.3.1">7.24.3.1</a>,
+ device input/output, <a href="#5.1.2.3">5.1.2.3</a> <a href="#7.24.3.10">7.24.3.10</a>
+ diagnostic message, <a href="#3.10">3.10</a>, <a href="#5.1.1.3">5.1.1.3</a> end-of-file macro, see EOF macro
+ diagnostics, <a href="#5.1.1.3">5.1.1.3</a> end-of-line indicator, <a href="#5.2.1">5.2.1</a>
+ diagnostics header, <a href="#7.2">7.2</a> endif preprocessing directive, <a href="#6.10.1">6.10.1</a>
+ difftime function, <a href="#7.23.2.2">7.23.2.2</a> enum type, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2">6.7.2</a>, <a href="#6.7.2.2">6.7.2.2</a>
+ digit, <a href="#5.2.1">5.2.1</a>, <a href="#7.4">7.4</a> enumerated type, <a href="#6.2.5">6.2.5</a>
+ digraphs, <a href="#6.4.6">6.4.6</a> enumeration, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2.2">6.7.2.2</a>
+ direct input/output functions, <a href="#7.19.8">7.19.8</a> enumeration constant, <a href="#6.2.1">6.2.1</a>, <a href="#6.4.4.3">6.4.4.3</a>
+ display device, <a href="#5.2.2">5.2.2</a> enumeration content, <a href="#6.7.2.3">6.7.2.3</a>
+ div function, <a href="#7.20.6.2">7.20.6.2</a> enumeration members, <a href="#6.7.2.2">6.7.2.2</a>
+ div_t type, <a href="#7.20">7.20</a> enumeration specifiers, <a href="#6.7.2.2">6.7.2.2</a>
+ division assignment operator (/=), <a href="#6.5.16.2">6.5.16.2</a> enumeration tag, <a href="#6.2.3">6.2.3</a>, <a href="#6.7.2.3">6.7.2.3</a>
+ division operator (/), <a href="#6.5.5">6.5.5</a>, <a href="#F.3">F.3</a>, <a href="#G.5.1">G.5.1</a> enumerator, <a href="#6.7.2.2">6.7.2.2</a>
+ do statement, <a href="#6.8.5.2">6.8.5.2</a> environment, <a href="#5">5</a>
+ documentation of implementation, <a href="#4">4</a> environment functions, <a href="#7.20.4">7.20.4</a>
+ domain error, <a href="#7.12.1">7.12.1</a>, <a href="#7.12.4.1">7.12.4.1</a>, <a href="#7.12.4.2">7.12.4.2</a>, <a href="#7.12.4.4">7.12.4.4</a>, environment list, <a href="#7.20.4.5">7.20.4.5</a>
+ <a href="#7.12.5.1">7.12.5.1</a>, <a href="#7.12.5.3">7.12.5.3</a>, <a href="#7.12.6.5">7.12.6.5</a>, <a href="#7.12.6.7">7.12.6.7</a>, environmental considerations, <a href="#5.2">5.2</a>
+ <a href="#7.12.6.8">7.12.6.8</a>, <a href="#7.12.6.9">7.12.6.9</a>, <a href="#7.12.6.10">7.12.6.10</a>, <a href="#7.12.6.11">7.12.6.11</a>, environmental limits, <a href="#5.2.4">5.2.4</a>, <a href="#7.13.1.1">7.13.1.1</a>, <a href="#7.19.2">7.19.2</a>,
+ <a href="#7.12.7.4">7.12.7.4</a>, <a href="#7.12.7.5">7.12.7.5</a>, <a href="#7.12.8.4">7.12.8.4</a>, <a href="#7.12.9.5">7.12.9.5</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.4.4">7.19.4.4</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.20.2.1">7.20.2.1</a>, <a href="#7.20.4.2">7.20.4.2</a>,
+ <a href="#7.12.9.7">7.12.9.7</a>, <a href="#7.12.10.1">7.12.10.1</a>, <a href="#7.12.10.2">7.12.10.2</a>, <a href="#7.12.10.3">7.12.10.3</a> <a href="#7.24.2.1">7.24.2.1</a>
+ dot operator (.), <a href="#6.5.2.3">6.5.2.3</a> EOF macro, <a href="#7.4">7.4</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.1">7.19.5.1</a>, <a href="#7.19.5.2">7.19.5.2</a>,
+ double _Complex type, <a href="#6.2.5">6.2.5</a> <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.19.6.7">7.19.6.7</a>, <a href="#7.19.6.9">7.19.6.9</a>, <a href="#7.19.6.11">7.19.6.11</a>,
+ double _Complex type conversion, <a href="#6.3.1.6">6.3.1.6</a>, <a href="#7.19.6.14">7.19.6.14</a>, <a href="#7.19.7.1">7.19.7.1</a>, <a href="#7.19.7.3">7.19.7.3</a>, <a href="#7.19.7.4">7.19.7.4</a>,
+ <a href="#6.3.1.7">6.3.1.7</a>, <a href="#6.3.1.8">6.3.1.8</a> <a href="#7.19.7.5">7.19.7.5</a>, <a href="#7.19.7.6">7.19.7.6</a>, <a href="#7.19.7.9">7.19.7.9</a>, <a href="#7.19.7.10">7.19.7.10</a>,
+ double _Imaginary type, <a href="#G.2">G.2</a> <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.24.1">7.24.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#7.24.2.4">7.24.2.4</a>,
+ double type, <a href="#6.2.5">6.2.5</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#6.7.2">6.7.2</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.8">7.24.2.8</a>, <a href="#7.24.2.10">7.24.2.10</a>, <a href="#7.24.2.12">7.24.2.12</a>,
+ <a href="#7.24.2.2">7.24.2.2</a>, <a href="#F.2">F.2</a> <a href="#7.24.3.4">7.24.3.4</a>, <a href="#7.24.6.1.1">7.24.6.1.1</a>, <a href="#7.24.6.1.2">7.24.6.1.2</a>
+ double type conversion, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.7">6.3.1.7</a>, equal-sign punctuator (=), <a href="#6.7">6.7</a>, <a href="#6.7.2.2">6.7.2.2</a>, <a href="#6.7.8">6.7.8</a>
+ <a href="#6.3.1.8">6.3.1.8</a> equal-to operator, see equality operator
+ double-precision arithmetic, <a href="#5.1.2.3">5.1.2.3</a> equality expressions, <a href="#6.5.9">6.5.9</a>
+ double-quote escape sequence (\"), <a href="#6.4.4.4">6.4.4.4</a>, equality operator (==), <a href="#6.5.9">6.5.9</a>
+ <a href="#6.4.5">6.4.5</a>, <a href="#6.10.9">6.10.9</a> ERANGE macro, <a href="#7.5">7.5</a>, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.12.1">7.12.1</a>,
+ double_t type, <a href="#7.12">7.12</a>, <a href="#J.5.6">J.5.6</a> <a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a>, see
+ also range error
+ EDOM macro, <a href="#7.5">7.5</a>, <a href="#7.12.1">7.12.1</a>, see also domain error erf functions, <a href="#7.12.8.1">7.12.8.1</a>, <a href="#F.9.5.1">F.9.5.1</a>
+ effective type, <a href="#6.5">6.5</a> erf type-generic macro, <a href="#7.22">7.22</a>
+ EILSEQ macro, <a href="#7.5">7.5</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.24.3.1">7.24.3.1</a>, <a href="#7.24.3.3">7.24.3.3</a>, erfc functions, <a href="#7.12.8.2">7.12.8.2</a>, <a href="#F.9.5.2">F.9.5.2</a>
+ <a href="#7.24.6.3.2">7.24.6.3.2</a>, <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4.1">7.24.6.4.1</a>, <a href="#7.24.6.4.2">7.24.6.4.2</a>, erfc type-generic macro, <a href="#7.22">7.22</a>
+ see also encoding error errno macro, <a href="#7.1.3">7.1.3</a>, <a href="#7.3.2">7.3.2</a>, <a href="#7.5">7.5</a>, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>,
+ element type, <a href="#6.2.5">6.2.5</a> <a href="#7.12.1">7.12.1</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.9.3">7.19.9.3</a>, <a href="#7.19.10.4">7.19.10.4</a>,
+ elif preprocessing directive, <a href="#6.10.1">6.10.1</a> <a href="#7.20.1">7.20.1</a>, <a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.21.6.2">7.21.6.2</a>, <a href="#7.24.3.1">7.24.3.1</a>,
+ ellipsis punctuator (...), <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.10.3">6.10.3</a> <a href="#7.24.3.3">7.24.3.3</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a>, <a href="#7.24.6.3.2">7.24.6.3.2</a>,
+ else preprocessing directive, <a href="#6.10.1">6.10.1</a> <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4.1">7.24.6.4.1</a>, <a href="#7.24.6.4.2">7.24.6.4.2</a>, <a href="#J.5.17">J.5.17</a>
+ else statement, <a href="#6.8.4.1">6.8.4.1</a> errno.h header, <a href="#7.5">7.5</a>, <a href="#7.26.3">7.26.3</a>
+ empty statement, <a href="#6.8.3">6.8.3</a> error
+ encoding error, <a href="#7.19.3">7.19.3</a>, <a href="#7.24.3.1">7.24.3.1</a>, <a href="#7.24.3.3">7.24.3.3</a>, domain, see domain error
+ <a href="#7.24.6.3.2">7.24.6.3.2</a>, <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4.1">7.24.6.4.1</a>, <a href="#7.24.6.4.2">7.24.6.4.2</a> encoding, see encoding error
+ end-of-file, <a href="#7.24.1">7.24.1</a> range, see range error
+<!--page 538 -->
+ error conditions, <a href="#7.12.1">7.12.1</a> extended characters, <a href="#5.2.1">5.2.1</a>
+ error functions, <a href="#7.12.8">7.12.8</a>, <a href="#F.9.5">F.9.5</a> extended integer types, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.4.4.1">6.4.4.1</a>,
+ error indicator, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.1">7.19.7.1</a>, <a href="#7.18">7.18</a>
+ <a href="#7.19.7.3">7.19.7.3</a>, <a href="#7.19.7.5">7.19.7.5</a>, <a href="#7.19.7.6">7.19.7.6</a>, <a href="#7.19.7.8">7.19.7.8</a>, extended multibyte/wide character conversion
+ <a href="#7.19.7.9">7.19.7.9</a>, <a href="#7.19.9.2">7.19.9.2</a>, <a href="#7.19.10.1">7.19.10.1</a>, <a href="#7.19.10.3">7.19.10.3</a>, utilities, <a href="#7.24.6">7.24.6</a>
+ <a href="#7.24.3.1">7.24.3.1</a>, <a href="#7.24.3.3">7.24.3.3</a> extensible wide character case mapping functions,
+ error preprocessing directive, <a href="#4">4</a>, <a href="#6.10.5">6.10.5</a> <a href="#7.25.3.2">7.25.3.2</a>
+ error-handling functions, <a href="#7.19.10">7.19.10</a>, <a href="#7.21.6.2">7.21.6.2</a> extensible wide character classification functions,
+ escape character (\), <a href="#6.4.4.4">6.4.4.4</a> <a href="#7.25.2.2">7.25.2.2</a>
+ escape sequences, <a href="#5.2.1">5.2.1</a>, <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.11.4">6.11.4</a> extern storage-class specifier, <a href="#6.2.2">6.2.2</a>, <a href="#6.7.1">6.7.1</a>
+ evaluation format, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#7.12">7.12</a> external definition, <a href="#6.9">6.9</a>
+ evaluation method, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.5">6.5</a>, <a href="#F.7.5">F.7.5</a> external identifiers, underscore, <a href="#7.1.3">7.1.3</a>
+ evaluation order, <a href="#6.5">6.5</a> external linkage, <a href="#6.2.2">6.2.2</a>
+ exceptional condition, <a href="#6.5">6.5</a>, <a href="#7.12.1">7.12.1</a> external name, <a href="#6.4.2.1">6.4.2.1</a>
+ excess precision, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.8">6.3.1.8</a>, external object definitions, <a href="#6.9.2">6.9.2</a>
+ <a href="#6.8.6.4">6.8.6.4</a>
+ excess range, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.8">6.3.1.8</a>, <a href="#6.8.6.4">6.8.6.4</a> fabs functions, <a href="#7.12.7.2">7.12.7.2</a>, <a href="#F.9.4.2">F.9.4.2</a>
+ exclusive OR operators fabs type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
+ bitwise (^), <a href="#6.5.11">6.5.11</a> false macro, <a href="#7.16">7.16</a>
+ bitwise assignment (^=), <a href="#6.5.16.2">6.5.16.2</a> fclose function, <a href="#7.19.5.1">7.19.5.1</a>
+ executable program, <a href="#5.1.1.1">5.1.1.1</a> fdim functions, <a href="#7.12.12.1">7.12.12.1</a>, <a href="#F.9.9.1">F.9.9.1</a>
+ execution character set, <a href="#5.2.1">5.2.1</a> fdim type-generic macro, <a href="#7.22">7.22</a>
+ execution environment, <a href="#5">5</a>, <a href="#5.1.2">5.1.2</a>, see also FE_ALL_EXCEPT macro, <a href="#7.6">7.6</a>
+ environmental limits FE_DFL_ENV macro, <a href="#7.6">7.6</a>
+ execution sequence, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#6.8">6.8</a> FE_DIVBYZERO macro, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
+ exit function, <a href="#5.1.2.2.3">5.1.2.2.3</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.20">7.20</a>, <a href="#7.20.4.3">7.20.4.3</a>, FE_DOWNWARD macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
+ <a href="#7.20.4.4">7.20.4.4</a> FE_INEXACT macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
+ EXIT_FAILURE macro, <a href="#7.20">7.20</a>, <a href="#7.20.4.3">7.20.4.3</a> FE_INVALID macro, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
+ EXIT_SUCCESS macro, <a href="#7.20">7.20</a>, <a href="#7.20.4.3">7.20.4.3</a> FE_OVERFLOW macro, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
+ exp functions, <a href="#7.12.6.1">7.12.6.1</a>, <a href="#F.9.3.1">F.9.3.1</a> FE_TONEAREST macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
+ exp type-generic macro, <a href="#7.22">7.22</a> FE_TOWARDZERO macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
+ exp2 functions, <a href="#7.12.6.2">7.12.6.2</a>, <a href="#F.9.3.2">F.9.3.2</a> FE_UNDERFLOW macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
+ exp2 type-generic macro, <a href="#7.22">7.22</a> FE_UPWARD macro, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
+ explicit conversion, <a href="#6.3">6.3</a> feclearexcept function, <a href="#7.6.2">7.6.2</a>, <a href="#7.6.2.1">7.6.2.1</a>, <a href="#F.3">F.3</a>
+ expm1 functions, <a href="#7.12.6.3">7.12.6.3</a>, <a href="#F.9.3.3">F.9.3.3</a> fegetenv function, <a href="#7.6.4.1">7.6.4.1</a>, <a href="#7.6.4.3">7.6.4.3</a>, <a href="#7.6.4.4">7.6.4.4</a>, <a href="#F.3">F.3</a>
+ expm1 type-generic macro, <a href="#7.22">7.22</a> fegetexceptflag function, <a href="#7.6.2">7.6.2</a>, <a href="#7.6.2.2">7.6.2.2</a>, <a href="#F.3">F.3</a>
+ exponent part, <a href="#6.4.4.2">6.4.4.2</a> fegetround function, <a href="#7.6">7.6</a>, <a href="#7.6.3.1">7.6.3.1</a>, <a href="#F.3">F.3</a>
+ exponential functions feholdexcept function, <a href="#7.6.4.2">7.6.4.2</a>, <a href="#7.6.4.3">7.6.4.3</a>,
+ complex, <a href="#7.3.7">7.3.7</a>, <a href="#G.6.3">G.6.3</a> <a href="#7.6.4.4">7.6.4.4</a>, <a href="#F.3">F.3</a>
+ real, <a href="#7.12.6">7.12.6</a>, <a href="#F.9.3">F.9.3</a> fenv.h header, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F">F</a>, <a href="#H">H</a>
+ expression, <a href="#6.5">6.5</a> FENV_ACCESS pragma, <a href="#6.10.6">6.10.6</a>, <a href="#7.6.1">7.6.1</a>, <a href="#F.7">F.7</a>, <a href="#F.8">F.8</a>,
+ assignment, <a href="#6.5.16">6.5.16</a> <a href="#F.9">F.9</a>
+ cast, <a href="#6.5.4">6.5.4</a> fenv_t type, <a href="#7.6">7.6</a>
+ constant, <a href="#6.6">6.6</a> feof function, <a href="#7.19.10.2">7.19.10.2</a>
+ full, <a href="#6.8">6.8</a> feraiseexcept function, <a href="#7.6.2">7.6.2</a>, <a href="#7.6.2.3">7.6.2.3</a>, <a href="#F.3">F.3</a>
+ order of evaluation, <a href="#6.5">6.5</a> ferror function, <a href="#7.19.10.3">7.19.10.3</a>
+ parenthesized, <a href="#6.5.1">6.5.1</a> fesetenv function, <a href="#7.6.4.3">7.6.4.3</a>, <a href="#F.3">F.3</a>
+ primary, <a href="#6.5.1">6.5.1</a> fesetexceptflag function, <a href="#7.6.2">7.6.2</a>, <a href="#7.6.2.4">7.6.2.4</a>, <a href="#F.3">F.3</a>
+ unary, <a href="#6.5.3">6.5.3</a> fesetround function, <a href="#7.6">7.6</a>, <a href="#7.6.3.2">7.6.3.2</a>, <a href="#F.3">F.3</a>
+ expression statement, <a href="#6.8.3">6.8.3</a> fetestexcept function, <a href="#7.6.2">7.6.2</a>, <a href="#7.6.2.5">7.6.2.5</a>, <a href="#F.3">F.3</a>
+ extended character set, <a href="#3.7.2">3.7.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#5.2.1.2">5.2.1.2</a> feupdateenv function, <a href="#7.6.4.2">7.6.4.2</a>, <a href="#7.6.4.4">7.6.4.4</a>, <a href="#F.3">F.3</a>
+<!--page 539 -->
+ fexcept_t type, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a> floating-point status flag, <a href="#7.6">7.6</a>, <a href="#F.7.6">F.7.6</a>
+ fflush function, <a href="#7.19.5.2">7.19.5.2</a>, <a href="#7.19.5.3">7.19.5.3</a> floor functions, <a href="#7.12.9.2">7.12.9.2</a>, <a href="#F.9.6.2">F.9.6.2</a>
+ fgetc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.7.1">7.19.7.1</a>, floor type-generic macro, <a href="#7.22">7.22</a>
+ <a href="#7.19.7.5">7.19.7.5</a>, <a href="#7.19.8.1">7.19.8.1</a> FLT_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ fgetpos function, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.9.1">7.19.9.1</a>, <a href="#7.19.9.3">7.19.9.3</a> FLT_EPSILON macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ fgets function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.2">7.19.7.2</a> FLT_EVAL_METHOD macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.8.6.4">6.8.6.4</a>,
+ fgetwc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.24.3.1">7.24.3.1</a>, <a href="#7.12">7.12</a>
+ <a href="#7.24.3.6">7.24.3.6</a> FLT_MANT_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ fgetws function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.2">7.24.3.2</a> FLT_MAX macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ field width, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a> FLT_MAX_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ file, <a href="#7.19.3">7.19.3</a> FLT_MAX_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ access functions, <a href="#7.19.5">7.19.5</a> FLT_MIN macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ name, <a href="#7.19.3">7.19.3</a> FLT_MIN_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ operations, <a href="#7.19.4">7.19.4</a> FLT_MIN_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ position indicator, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.3">7.19.3</a>, FLT_RADIX macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.20.1.3">7.20.1.3</a>,
+ <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.1">7.19.7.1</a>, <a href="#7.19.7.3">7.19.7.3</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.4.1.1">7.24.4.1.1</a>
+ <a href="#7.19.8.1">7.19.8.1</a>, <a href="#7.19.8.2">7.19.8.2</a>, <a href="#7.19.9.1">7.19.9.1</a>, <a href="#7.19.9.2">7.19.9.2</a>, FLT_ROUNDS macro, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.6">7.6</a>, <a href="#F.3">F.3</a>
+ <a href="#7.19.9.3">7.19.9.3</a>, <a href="#7.19.9.4">7.19.9.4</a>, <a href="#7.19.9.5">7.19.9.5</a>, <a href="#7.24.3.1">7.24.3.1</a>, fma functions, <a href="#7.12">7.12</a>, <a href="#7.12.13.1">7.12.13.1</a>, <a href="#F.9.10.1">F.9.10.1</a>
+ <a href="#7.24.3.3">7.24.3.3</a>, <a href="#7.24.3.10">7.24.3.10</a> fma type-generic macro, <a href="#7.22">7.22</a>
+ positioning functions, <a href="#7.19.9">7.19.9</a> fmax functions, <a href="#7.12.12.2">7.12.12.2</a>, <a href="#F.9.9.2">F.9.9.2</a>
+ file scope, <a href="#6.2.1">6.2.1</a>, <a href="#6.9">6.9</a> fmax type-generic macro, <a href="#7.22">7.22</a>
+ FILE type, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a> fmin functions, <a href="#7.12.12.3">7.12.12.3</a>, <a href="#F.9.9.3">F.9.9.3</a>
+ FILENAME_MAX macro, <a href="#7.19.1">7.19.1</a> fmin type-generic macro, <a href="#7.22">7.22</a>
+ flags, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a> fmod functions, <a href="#7.12.10.1">7.12.10.1</a>, <a href="#F.9.7.1">F.9.7.1</a>
+ floating-point status, see floating-point status fmod type-generic macro, <a href="#7.22">7.22</a>
+ flag fopen function, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.5.4">7.19.5.4</a>
+ flexible array member, <a href="#6.7.2.1">6.7.2.1</a> FOPEN_MAX macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.4.3">7.19.4.3</a>
+ float _Complex type, <a href="#6.2.5">6.2.5</a> for statement, <a href="#6.8.5">6.8.5</a>, <a href="#6.8.5.3">6.8.5.3</a>
+ float _Complex type conversion, <a href="#6.3.1.6">6.3.1.6</a>, form-feed character, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>
+ <a href="#6.3.1.7">6.3.1.7</a>, <a href="#6.3.1.8">6.3.1.8</a> form-feed escape sequence (\f), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>,
+ float _Imaginary type, <a href="#G.2">G.2</a> <a href="#7.4.1.10">7.4.1.10</a>
+ float type, <a href="#6.2.5">6.2.5</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#6.7.2">6.7.2</a>, <a href="#F.2">F.2</a> formal argument (deprecated), <a href="#3.15">3.15</a>
+ float type conversion, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.7">6.3.1.7</a>, formal parameter, <a href="#3.15">3.15</a>
+ <a href="#6.3.1.8">6.3.1.8</a> formatted input/output functions, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.19.6">7.19.6</a>
+ float.h header, <a href="#4">4</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.7">7.7</a>, <a href="#7.20.1.3">7.20.1.3</a>, wide character, <a href="#7.24.2">7.24.2</a>
+ <a href="#7.24.4.1.1">7.24.4.1.1</a> fortran keyword, <a href="#J.5.9">J.5.9</a>
+ float_t type, <a href="#7.12">7.12</a>, <a href="#J.5.6">J.5.6</a> forward reference, <a href="#3.11">3.11</a>
+ floating constant, <a href="#6.4.4.2">6.4.4.2</a> FP_CONTRACT pragma, <a href="#6.5">6.5</a>, <a href="#6.10.6">6.10.6</a>, <a href="#7.12.2">7.12.2</a>, see
+ floating suffix, f or <a href="#F">F</a>, <a href="#6.4.4.2">6.4.4.2</a> also contracted expression
+ floating type conversion, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.7">6.3.1.7</a>, FP_FAST_FMA macro, <a href="#7.12">7.12</a>
+ <a href="#F.3">F.3</a>, <a href="#F.4">F.4</a> FP_FAST_FMAF macro, <a href="#7.12">7.12</a>
+ floating types, <a href="#6.2.5">6.2.5</a>, <a href="#6.11.1">6.11.1</a> FP_FAST_FMAL macro, <a href="#7.12">7.12</a>
+ floating-point accuracy, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#6.5">6.5</a>, FP_ILOGB0 macro, <a href="#7.12">7.12</a>, <a href="#7.12.6.5">7.12.6.5</a>
+ <a href="#7.20.1.3">7.20.1.3</a>, <a href="#F.5">F.5</a>, see also contracted expression FP_ILOGBNAN macro, <a href="#7.12">7.12</a>, <a href="#7.12.6.5">7.12.6.5</a>
+ floating-point arithmetic functions, <a href="#7.12">7.12</a>, <a href="#F.9">F.9</a> FP_INFINITE macro, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
+ floating-point classification functions, <a href="#7.12.3">7.12.3</a> FP_NAN macro, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
+ floating-point control mode, <a href="#7.6">7.6</a>, <a href="#F.7.6">F.7.6</a> FP_NORMAL macro, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
+ floating-point environment, <a href="#7.6">7.6</a>, <a href="#F.7">F.7</a>, <a href="#F.7.6">F.7.6</a> FP_SUBNORMAL macro, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
+ floating-point exception, <a href="#7.6">7.6</a>, <a href="#7.6.2">7.6.2</a>, <a href="#F.9">F.9</a> FP_ZERO macro, <a href="#7.12">7.12</a>, <a href="#F.3">F.3</a>
+ floating-point number, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.2.5">6.2.5</a> fpclassify macro, <a href="#7.12.3.1">7.12.3.1</a>, <a href="#F.3">F.3</a>
+ floating-point rounding mode, <a href="#5.2.4.2.2">5.2.4.2.2</a> fpos_t type, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>
+<!--page 540 -->
+ fprintf function, <a href="#7.8.1">7.8.1</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.1">7.19.6.1</a>, language, <a href="#6.11">6.11</a>
+ <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.19.6.3">7.19.6.3</a>, <a href="#7.19.6.5">7.19.6.5</a>, <a href="#7.19.6.6">7.19.6.6</a>, library, <a href="#7.26">7.26</a>
+ <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#F.3">F.3</a> fwide function, <a href="#7.19.2">7.19.2</a>, <a href="#7.24.3.5">7.24.3.5</a>
+ fputc function, <a href="#5.2.2">5.2.2</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.7.3">7.19.7.3</a>, fwprintf function, <a href="#7.8.1">7.8.1</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.2">7.19.6.2</a>,
+ <a href="#7.19.7.8">7.19.7.8</a>, <a href="#7.19.8.2">7.19.8.2</a> <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#7.24.2.3">7.24.2.3</a>, <a href="#7.24.2.5">7.24.2.5</a>,
+ fputs function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.4">7.19.7.4</a> <a href="#7.24.2.11">7.24.2.11</a>
+ fputwc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.24.3.3">7.24.3.3</a>, fwrite function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.8.2">7.19.8.2</a>
+ <a href="#7.24.3.8">7.24.3.8</a> fwscanf function, <a href="#7.8.1">7.8.1</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.2">7.24.2.2</a>,
+ fputws function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.4">7.24.3.4</a> <a href="#7.24.2.4">7.24.2.4</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.12">7.24.2.12</a>, <a href="#7.24.3.10">7.24.3.10</a>
+ fread function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.8.1">7.19.8.1</a>
+ free function, <a href="#7.20.3.2">7.20.3.2</a>, <a href="#7.20.3.4">7.20.3.4</a> gamma functions, <a href="#7.12.8">7.12.8</a>, <a href="#F.9.5">F.9.5</a>
+ freestanding execution environment, <a href="#4">4</a>, <a href="#5.1.2">5.1.2</a>, general utilities, <a href="#7.20">7.20</a>
+ <a href="#5.1.2.1">5.1.2.1</a> wide string, <a href="#7.24.4">7.24.4</a>
+ freopen function, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.5.4">7.19.5.4</a> general wide string utilities, <a href="#7.24.4">7.24.4</a>
+ frexp functions, <a href="#7.12.6.4">7.12.6.4</a>, <a href="#F.9.3.4">F.9.3.4</a> generic parameters, <a href="#7.22">7.22</a>
+ frexp type-generic macro, <a href="#7.22">7.22</a> getc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.5">7.19.7.5</a>, <a href="#7.19.7.6">7.19.7.6</a>
+ fscanf function, <a href="#7.8.1">7.8.1</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, getchar function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.6">7.19.7.6</a>
+ <a href="#7.19.6.4">7.19.6.4</a>, <a href="#7.19.6.7">7.19.6.7</a>, <a href="#7.19.6.9">7.19.6.9</a>, <a href="#F.3">F.3</a> getenv function, <a href="#7.20.4.5">7.20.4.5</a>
+ fseek function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.11">7.19.7.11</a>, gets function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.7">7.19.7.7</a>, <a href="#7.26.9">7.26.9</a>
+ <a href="#7.19.9.2">7.19.9.2</a>, <a href="#7.19.9.4">7.19.9.4</a>, <a href="#7.19.9.5">7.19.9.5</a>, <a href="#7.24.3.10">7.24.3.10</a> getwc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.6">7.24.3.6</a>, <a href="#7.24.3.7">7.24.3.7</a>
+ fsetpos function, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.11">7.19.7.11</a>, getwchar function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.7">7.24.3.7</a>
+ <a href="#7.19.9.1">7.19.9.1</a>, <a href="#7.19.9.3">7.19.9.3</a>, <a href="#7.24.3.10">7.24.3.10</a> gmtime function, <a href="#7.23.3.3">7.23.3.3</a>
+ ftell function, <a href="#7.19.9.2">7.19.9.2</a>, <a href="#7.19.9.4">7.19.9.4</a> goto statement, <a href="#6.2.1">6.2.1</a>, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.6.1">6.8.6.1</a>
+ full declarator, <a href="#6.7.5">6.7.5</a> graphic characters, <a href="#5.2.1">5.2.1</a>
+ full expression, <a href="#6.8">6.8</a> greater-than operator (>), <a href="#6.5.8">6.5.8</a>
+ fully buffered stream, <a href="#7.19.3">7.19.3</a> greater-than-or-equal-to operator (>=), <a href="#6.5.8">6.5.8</a>
+ function
+ argument, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.9.1">6.9.1</a> header, <a href="#5.1.1.1">5.1.1.1</a>, <a href="#7.1.2">7.1.2</a>, see also standard headers
+ body, <a href="#6.9.1">6.9.1</a> header names, <a href="#6.4">6.4</a>, <a href="#6.4.7">6.4.7</a>, <a href="#6.10.2">6.10.2</a>
+ call, <a href="#6.5.2.2">6.5.2.2</a> hexadecimal constant, <a href="#6.4.4.1">6.4.4.1</a>
+ library, <a href="#7.1.4">7.1.4</a> hexadecimal digit, <a href="#6.4.4.1">6.4.4.1</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#6.4.4.4">6.4.4.4</a>
+ declarator, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.11.6">6.11.6</a> hexadecimal prefix, <a href="#6.4.4.1">6.4.4.1</a>
+ definition, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.9.1">6.9.1</a>, <a href="#6.11.7">6.11.7</a> hexadecimal-character escape sequence
+ designator, <a href="#6.3.2.1">6.3.2.1</a> (\x hexadecimal digits), <a href="#6.4.4.4">6.4.4.4</a>
+ image, <a href="#5.2.3">5.2.3</a> high-order bit, <a href="#3.6">3.6</a>
+ library, <a href="#5.1.1.1">5.1.1.1</a>, <a href="#7.1.4">7.1.4</a> horizontal-tab character, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>
+ name length, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.11.3">6.11.3</a> horizontal-tab escape sequence (\r), <a href="#7.25.2.1.3">7.25.2.1.3</a>
+ parameter, <a href="#5.1.2.2.1">5.1.2.2.1</a>, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.7">6.7</a>, <a href="#6.9.1">6.9.1</a> horizontal-tab escape sequence (\t), <a href="#5.2.2">5.2.2</a>,
+ prototype, <a href="#5.1.2.2.1">5.1.2.2.1</a>, <a href="#6.2.1">6.2.1</a>, <a href="#6.2.7">6.2.7</a>, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.7">6.7</a>, <a href="#6.4.4.4">6.4.4.4</a>, <a href="#7.4.1.3">7.4.1.3</a>, <a href="#7.4.1.10">7.4.1.10</a>
+ <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.9.1">6.9.1</a>, <a href="#6.11.6">6.11.6</a>, <a href="#6.11.7">6.11.7</a>, <a href="#7.1.2">7.1.2</a>, <a href="#7.12">7.12</a> hosted execution environment, <a href="#4">4</a>, <a href="#5.1.2">5.1.2</a>, <a href="#5.1.2.2">5.1.2.2</a>
+ prototype scope, <a href="#6.2.1">6.2.1</a>, <a href="#6.7.5.2">6.7.5.2</a> HUGE_VAL macro, <a href="#7.12">7.12</a>, <a href="#7.12.1">7.12.1</a>, <a href="#7.20.1.3">7.20.1.3</a>,
+ recursive call, <a href="#6.5.2.2">6.5.2.2</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#F.9">F.9</a>
+ return, <a href="#6.8.6.4">6.8.6.4</a> HUGE_VALF macro, <a href="#7.12">7.12</a>, <a href="#7.12.1">7.12.1</a>, <a href="#7.20.1.3">7.20.1.3</a>,
+ scope, <a href="#6.2.1">6.2.1</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#F.9">F.9</a>
+ type, <a href="#6.2.5">6.2.5</a> HUGE_VALL macro, <a href="#7.12">7.12</a>, <a href="#7.12.1">7.12.1</a>, <a href="#7.20.1.3">7.20.1.3</a>,
+ type conversion, <a href="#6.3.2.1">6.3.2.1</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#F.9">F.9</a>
+ function specifiers, <a href="#6.7.4">6.7.4</a> hyperbolic functions
+ function type, <a href="#6.2.5">6.2.5</a> complex, <a href="#7.3.6">7.3.6</a>, <a href="#G.6.2">G.6.2</a>
+ function-call operator (( )), <a href="#6.5.2.2">6.5.2.2</a> real, <a href="#7.12.5">7.12.5</a>, <a href="#F.9.2">F.9.2</a>
+ function-like macro, <a href="#6.10.3">6.10.3</a> hypot functions, <a href="#7.12.7.3">7.12.7.3</a>, <a href="#F.9.4.3">F.9.4.3</a>
+ future directions hypot type-generic macro, <a href="#7.22">7.22</a>
+<!--page 541 -->
+ <a href="#I">I</a> macro, <a href="#7.3.1">7.3.1</a>, <a href="#7.3.9.4">7.3.9.4</a>, <a href="#G.6">G.6</a> initial position, <a href="#5.2.2">5.2.2</a>
+ identifier, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.5.1">6.5.1</a> initial shift state, <a href="#5.2.1.2">5.2.1.2</a>
+ linkage, see linkage initialization, <a href="#5.1.2">5.1.2</a>, <a href="#6.2.4">6.2.4</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.5">6.5.2.5</a>, <a href="#6.7.8">6.7.8</a>,
+ maximum length, <a href="#6.4.2.1">6.4.2.1</a> <a href="#F.7.5">F.7.5</a>
+ name spaces, <a href="#6.2.3">6.2.3</a> in blocks, <a href="#6.8">6.8</a>
+ reserved, <a href="#6.4.1">6.4.1</a>, <a href="#7.1.3">7.1.3</a> initializer, <a href="#6.7.8">6.7.8</a>
+ scope, <a href="#6.2.1">6.2.1</a> permitted form, <a href="#6.6">6.6</a>
+ type, <a href="#6.2.5">6.2.5</a> string literal, <a href="#6.3.2.1">6.3.2.1</a>
+ identifier list, <a href="#6.7.5">6.7.5</a> inline, <a href="#6.7.4">6.7.4</a>
+ identifier nondigit, <a href="#6.4.2.1">6.4.2.1</a> inner scope, <a href="#6.2.1">6.2.1</a>
+ IEC 559, <a href="#F.1">F.1</a> input failure, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.8">7.24.2.8</a>, <a href="#7.24.2.10">7.24.2.10</a>
+ IEC 60559, <a href="#2">2</a>, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.10.8">6.10.8</a>, <a href="#7.3.3">7.3.3</a>, <a href="#7.6">7.6</a>, input/output functions
+ <a href="#7.6.4.2">7.6.4.2</a>, <a href="#7.12.1">7.12.1</a>, <a href="#7.12.10.2">7.12.10.2</a>, <a href="#7.12.14">7.12.14</a>, <a href="#F">F</a>, <a href="#G">G</a>, <a href="#H.1">H.1</a> character, <a href="#7.19.7">7.19.7</a>
+ IEEE 754, <a href="#F.1">F.1</a> direct, <a href="#7.19.8">7.19.8</a>
+ IEEE 854, <a href="#F.1">F.1</a> formatted, <a href="#7.19.6">7.19.6</a>
+ IEEE floating-point arithmetic standard, see wide character, <a href="#7.24.2">7.24.2</a>
+ IEC 60559, ANSI/IEEE 754, wide character, <a href="#7.24.3">7.24.3</a>
+ ANSI/IEEE 854 formatted, <a href="#7.24.2">7.24.2</a>
+ if preprocessing directive, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, input/output header, <a href="#7.19">7.19</a>
+ <a href="#6.10.1">6.10.1</a>, <a href="#7.1.4">7.1.4</a> input/output, device, <a href="#5.1.2.3">5.1.2.3</a>
+ if statement, <a href="#6.8.4.1">6.8.4.1</a> int type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.4.4.1">6.4.4.1</a>, <a href="#6.7.2">6.7.2</a>
+ ifdef preprocessing directive, <a href="#6.10.1">6.10.1</a> int type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.3.1.4">6.3.1.4</a>,
+ ifndef preprocessing directive, <a href="#6.10.1">6.10.1</a> <a href="#6.3.1.8">6.3.1.8</a>
+ ilogb functions, <a href="#7.12">7.12</a>, <a href="#7.12.6.5">7.12.6.5</a>, <a href="#F.9.3.5">F.9.3.5</a> INT_FASTN_MAX macros, <a href="#7.18.2.3">7.18.2.3</a>
+ ilogb type-generic macro, <a href="#7.22">7.22</a> INT_FASTN_MIN macros, <a href="#7.18.2.3">7.18.2.3</a>
+ imaginary macro, <a href="#7.3.1">7.3.1</a>, <a href="#G.6">G.6</a> int_fastN_t types, <a href="#7.18.1.3">7.18.1.3</a>
+ imaginary numbers, <a href="#G">G</a> INT_LEASTN_MAX macros, <a href="#7.18.2.2">7.18.2.2</a>
+ imaginary type domain, <a href="#G.2">G.2</a> INT_LEASTN_MIN macros, <a href="#7.18.2.2">7.18.2.2</a>
+ imaginary types, <a href="#G">G</a> int_leastN_t types, <a href="#7.18.1.2">7.18.1.2</a>
+ imaxabs function, <a href="#7.8.2.1">7.8.2.1</a> INT_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.12">7.12</a>, <a href="#7.12.6.5">7.12.6.5</a>
+ imaxdiv function, <a href="#7.8">7.8</a>, <a href="#7.8.2.2">7.8.2.2</a> INT_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.12">7.12</a>
+ imaxdiv_t type, <a href="#7.8">7.8</a> integer arithmetic functions, <a href="#7.8.2.1">7.8.2.1</a>, <a href="#7.8.2.2">7.8.2.2</a>,
+ implementation, <a href="#3.12">3.12</a> <a href="#7.20.6">7.20.6</a>
+ implementation limit, <a href="#3.13">3.13</a>, <a href="#4">4</a>, <a href="#5.2.4.2">5.2.4.2</a>, <a href="#6.4.2.1">6.4.2.1</a>, integer character constant, <a href="#6.4.4.4">6.4.4.4</a>
+ <a href="#6.7.5">6.7.5</a>, <a href="#6.8.4.2">6.8.4.2</a>, <a href="#E">E</a>, see also environmental integer constant, <a href="#6.4.4.1">6.4.4.1</a>
+ limits integer constant expression, <a href="#6.6">6.6</a>
+ implementation-defined behavior, <a href="#3.4.1">3.4.1</a>, <a href="#4">4</a>, <a href="#J.3">J.3</a> integer conversion rank, <a href="#6.3.1.1">6.3.1.1</a>
+ implementation-defined value, <a href="#3.17.1">3.17.1</a> integer promotions, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#6.3.1.1">6.3.1.1</a>,
+ implicit conversion, <a href="#6.3">6.3</a> <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.5.3.3">6.5.3.3</a>, <a href="#6.5.7">6.5.7</a>, <a href="#6.8.4.2">6.8.4.2</a>, <a href="#7.18.2">7.18.2</a>, <a href="#7.18.3">7.18.3</a>,
+ implicit initialization, <a href="#6.7.8">6.7.8</a> <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a>
+ include preprocessing directive, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.10.2">6.10.2</a> integer suffix, <a href="#6.4.4.1">6.4.4.1</a>
+ inclusive OR operators integer type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.3.1.4">6.3.1.4</a>,
+ bitwise (|), <a href="#6.5.12">6.5.12</a> <a href="#F.3">F.3</a>, <a href="#F.4">F.4</a>
+ bitwise assignment (|=), <a href="#6.5.16.2">6.5.16.2</a> integer types, <a href="#6.2.5">6.2.5</a>, <a href="#7.18">7.18</a>
+ incomplete type, <a href="#6.2.5">6.2.5</a> extended, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.4.4.1">6.4.4.1</a>, <a href="#7.18">7.18</a>
+ increment operators, see arithmetic operators, interactive device, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.5.3">7.19.5.3</a>
+ increment and decrement internal linkage, <a href="#6.2.2">6.2.2</a>
+ indeterminate value, <a href="#3.17.2">3.17.2</a> internal name, <a href="#6.4.2.1">6.4.2.1</a>
+ indirection operator (*), <a href="#6.5.2.1">6.5.2.1</a>, <a href="#6.5.3.2">6.5.3.2</a> interrupt, <a href="#5.2.3">5.2.3</a>
+ inequality operator (!=), <a href="#6.5.9">6.5.9</a> INTMAX_C macro, <a href="#7.18.4.2">7.18.4.2</a>
+ INFINITY macro, <a href="#7.3.9.4">7.3.9.4</a>, <a href="#7.12">7.12</a>, <a href="#F.2.1">F.2.1</a> INTMAX_MAX macro, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.18.2.5">7.18.2.5</a>
+<!--page 542 -->
+ INTMAX_MIN macro, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.18.2.5">7.18.2.5</a> iswalpha function, <a href="#7.25.2.1.1">7.25.2.1.1</a>, <a href="#7.25.2.1.2">7.25.2.1.2</a>,
+ intmax_t type, <a href="#7.18.1.5">7.18.1.5</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
+ <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> iswblank function, <a href="#7.25.2.1.3">7.25.2.1.3</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
+ INTN_C macros, <a href="#7.18.4.1">7.18.4.1</a> iswcntrl function, <a href="#7.25.2.1.2">7.25.2.1.2</a>, <a href="#7.25.2.1.4">7.25.2.1.4</a>,
+ INTN_MAX macros, <a href="#7.18.2.1">7.18.2.1</a> <a href="#7.25.2.1.7">7.25.2.1.7</a>, <a href="#7.25.2.1.11">7.25.2.1.11</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
+ INTN_MIN macros, <a href="#7.18.2.1">7.18.2.1</a> iswctype function, <a href="#7.25.2.2.1">7.25.2.2.1</a>, <a href="#7.25.2.2.2">7.25.2.2.2</a>
+ intN_t types, <a href="#7.18.1.1">7.18.1.1</a> iswdigit function, <a href="#7.25.2.1.1">7.25.2.1.1</a>, <a href="#7.25.2.1.2">7.25.2.1.2</a>,
+ INTPTR_MAX macro, <a href="#7.18.2.4">7.18.2.4</a> <a href="#7.25.2.1.5">7.25.2.1.5</a>, <a href="#7.25.2.1.7">7.25.2.1.7</a>, <a href="#7.25.2.1.11">7.25.2.1.11</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
+ INTPTR_MIN macro, <a href="#7.18.2.4">7.18.2.4</a> iswgraph function, <a href="#7.25.2.1">7.25.2.1</a>, <a href="#7.25.2.1.6">7.25.2.1.6</a>,
+ intptr_t type, <a href="#7.18.1.4">7.18.1.4</a> <a href="#7.25.2.1.10">7.25.2.1.10</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
+ inttypes.h header, <a href="#7.8">7.8</a>, <a href="#7.26.4">7.26.4</a> iswlower function, <a href="#7.25.2.1.2">7.25.2.1.2</a>, <a href="#7.25.2.1.7">7.25.2.1.7</a>,
+ isalnum function, <a href="#7.4.1.1">7.4.1.1</a>, <a href="#7.4.1.9">7.4.1.9</a>, <a href="#7.4.1.10">7.4.1.10</a> <a href="#7.25.2.2.1">7.25.2.2.1</a>, <a href="#7.25.3.1.1">7.25.3.1.1</a>, <a href="#7.25.3.1.2">7.25.3.1.2</a>
+ isalpha function, <a href="#7.4.1.1">7.4.1.1</a>, <a href="#7.4.1.2">7.4.1.2</a> iswprint function, <a href="#7.25.2.1.6">7.25.2.1.6</a>, <a href="#7.25.2.1.8">7.25.2.1.8</a>,
+ isblank function, <a href="#7.4.1.3">7.4.1.3</a> <a href="#7.25.2.2.1">7.25.2.2.1</a>
+ iscntrl function, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.4">7.4.1.4</a>, <a href="#7.4.1.7">7.4.1.7</a>, iswpunct function, <a href="#7.25.2.1">7.25.2.1</a>, <a href="#7.25.2.1.2">7.25.2.1.2</a>,
+ <a href="#7.4.1.11">7.4.1.11</a> <a href="#7.25.2.1.7">7.25.2.1.7</a>, <a href="#7.25.2.1.9">7.25.2.1.9</a>, <a href="#7.25.2.1.10">7.25.2.1.10</a>,
+ isdigit function, <a href="#7.4.1.1">7.4.1.1</a>, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.5">7.4.1.5</a>, <a href="#7.25.2.1.11">7.25.2.1.11</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
+ <a href="#7.4.1.7">7.4.1.7</a>, <a href="#7.4.1.11">7.4.1.11</a>, <a href="#7.11.1.1">7.11.1.1</a> iswspace function, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>,
+ isfinite macro, <a href="#7.12.3.2">7.12.3.2</a>, <a href="#F.3">F.3</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a>, <a href="#7.25.2.1.2">7.25.2.1.2</a>, <a href="#7.25.2.1.6">7.25.2.1.6</a>,
+ isgraph function, <a href="#7.4.1.6">7.4.1.6</a> <a href="#7.25.2.1.7">7.25.2.1.7</a>, <a href="#7.25.2.1.9">7.25.2.1.9</a>, <a href="#7.25.2.1.10">7.25.2.1.10</a>,
+ isgreater macro, <a href="#7.12.14.1">7.12.14.1</a>, <a href="#F.3">F.3</a> <a href="#7.25.2.1.11">7.25.2.1.11</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
+ isgreaterequal macro, <a href="#7.12.14.2">7.12.14.2</a>, <a href="#F.3">F.3</a> iswupper function, <a href="#7.25.2.1.2">7.25.2.1.2</a>, <a href="#7.25.2.1.11">7.25.2.1.11</a>,
+ isinf macro, <a href="#7.12.3.3">7.12.3.3</a> <a href="#7.25.2.2.1">7.25.2.2.1</a>, <a href="#7.25.3.1.1">7.25.3.1.1</a>, <a href="#7.25.3.1.2">7.25.3.1.2</a>
+ isless macro, <a href="#7.12.14.3">7.12.14.3</a>, <a href="#F.3">F.3</a> iswxdigit function, <a href="#7.25.2.1.12">7.25.2.1.12</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>
+ islessequal macro, <a href="#7.12.14.4">7.12.14.4</a>, <a href="#F.3">F.3</a> isxdigit function, <a href="#7.4.1.12">7.4.1.12</a>, <a href="#7.11.1.1">7.11.1.1</a>
+ islessgreater macro, <a href="#7.12.14.5">7.12.14.5</a>, <a href="#F.3">F.3</a> italic type convention, <a href="#3">3</a>, <a href="#6.1">6.1</a>
+ islower function, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.7">7.4.1.7</a>, <a href="#7.4.2.1">7.4.2.1</a>, iteration statements, <a href="#6.8.5">6.8.5</a>
+ <a href="#7.4.2.2">7.4.2.2</a>
+ isnan macro, <a href="#7.12.3.4">7.12.3.4</a>, <a href="#F.3">F.3</a> jmp_buf type, <a href="#7.13">7.13</a>
+ isnormal macro, <a href="#7.12.3.5">7.12.3.5</a> jump statements, <a href="#6.8.6">6.8.6</a>
+ ISO 31-11, <a href="#2">2</a>, <a href="#3">3</a>
+ ISO 4217, <a href="#2">2</a>, <a href="#7.11.2.1">7.11.2.1</a> keywords, <a href="#6.4.1">6.4.1</a>, <a href="#G.2">G.2</a>, <a href="#J.5.9">J.5.9</a>, <a href="#J.5.10">J.5.10</a>
+ ISO 8601, <a href="#2">2</a>, <a href="#7.23.3.5">7.23.3.5</a> known constant size, <a href="#6.2.5">6.2.5</a>
+ ISO/IEC 10646, <a href="#2">2</a>, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.4.3">6.4.3</a>, <a href="#6.10.8">6.10.8</a>
+ ISO/IEC 10976-1, <a href="#H.1">H.1</a> L_tmpnam macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.4.4">7.19.4.4</a>
+ ISO/IEC 2382-1, <a href="#2">2</a>, <a href="#3">3</a> label name, <a href="#6.2.1">6.2.1</a>, <a href="#6.2.3">6.2.3</a>
+ ISO/IEC 646, <a href="#2">2</a>, <a href="#5.2.1.1">5.2.1.1</a> labeled statement, <a href="#6.8.1">6.8.1</a>
+ ISO/IEC 9945-2, <a href="#7.11">7.11</a> labs function, <a href="#7.20.6.1">7.20.6.1</a>
+ ISO/IEC TR 10176, <a href="#D">D</a> language, <a href="#6">6</a>
+ iso646.h header, <a href="#4">4</a>, <a href="#7.9">7.9</a> future directions, <a href="#6.11">6.11</a>
+ isprint function, <a href="#5.2.2">5.2.2</a>, <a href="#7.4.1.8">7.4.1.8</a> syntax summary, <a href="#A">A</a>
+ ispunct function, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.7">7.4.1.7</a>, <a href="#7.4.1.9">7.4.1.9</a>, Latin alphabet, <a href="#5.2.1">5.2.1</a>, <a href="#6.4.2.1">6.4.2.1</a>
+ <a href="#7.4.1.11">7.4.1.11</a> LC_ALL macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
+ isspace function, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.7">7.4.1.7</a>, <a href="#7.4.1.9">7.4.1.9</a>, LC_COLLATE macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.21.4.3">7.21.4.3</a>,
+ <a href="#7.4.1.10">7.4.1.10</a>, <a href="#7.4.1.11">7.4.1.11</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20.1.3">7.20.1.3</a>, <a href="#7.24.4.4.2">7.24.4.4.2</a>
+ <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.2.2">7.24.2.2</a> LC_CTYPE macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.20">7.20</a>, <a href="#7.20.7">7.20.7</a>,
+ isunordered macro, <a href="#7.12.14.6">7.12.14.6</a>, <a href="#F.3">F.3</a> <a href="#7.20.8">7.20.8</a>, <a href="#7.24.6">7.24.6</a>, <a href="#7.25.1">7.25.1</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a>, <a href="#7.25.2.2.2">7.25.2.2.2</a>,
+ isupper function, <a href="#7.4.1.2">7.4.1.2</a>, <a href="#7.4.1.11">7.4.1.11</a>, <a href="#7.4.2.1">7.4.2.1</a>, <a href="#7.25.3.2.1">7.25.3.2.1</a>, <a href="#7.25.3.2.2">7.25.3.2.2</a>
+ <a href="#7.4.2.2">7.4.2.2</a> LC_MONETARY macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
+ iswalnum function, <a href="#7.25.2.1.1">7.25.2.1.1</a>, <a href="#7.25.2.1.9">7.25.2.1.9</a>, LC_NUMERIC macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
+ <a href="#7.25.2.1.10">7.25.2.1.10</a>, <a href="#7.25.2.2.1">7.25.2.2.1</a> LC_TIME macro, <a href="#7.11">7.11</a>, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.23.3.5">7.23.3.5</a>
+<!--page 543 -->
+ lconv structure type, <a href="#7.11">7.11</a> llabs function, <a href="#7.20.6.1">7.20.6.1</a>
+ LDBL_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> lldiv function, <a href="#7.20.6.2">7.20.6.2</a>
+ LDBL_EPSILON macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> lldiv_t type, <a href="#7.20">7.20</a>
+ LDBL_MANT_DIG macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> LLONG_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>,
+ LDBL_MAX macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> <a href="#7.24.4.1.2">7.24.4.1.2</a>
+ LDBL_MAX_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> LLONG_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>,
+ LDBL_MAX_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> <a href="#7.24.4.1.2">7.24.4.1.2</a>
+ LDBL_MIN macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> llrint functions, <a href="#7.12.9.5">7.12.9.5</a>, <a href="#F.3">F.3</a>, <a href="#F.9.6.5">F.9.6.5</a>
+ LDBL_MIN_10_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> llrint type-generic macro, <a href="#7.22">7.22</a>
+ LDBL_MIN_EXP macro, <a href="#5.2.4.2.2">5.2.4.2.2</a> llround functions, <a href="#7.12.9.7">7.12.9.7</a>, <a href="#F.9.6.7">F.9.6.7</a>
+ ldexp functions, <a href="#7.12.6.6">7.12.6.6</a>, <a href="#F.9.3.6">F.9.3.6</a> llround type-generic macro, <a href="#7.22">7.22</a>
+ ldexp type-generic macro, <a href="#7.22">7.22</a> local time, <a href="#7.23.1">7.23.1</a>
+ ldiv function, <a href="#7.20.6.2">7.20.6.2</a> locale, <a href="#3.4.2">3.4.2</a>
+ ldiv_t type, <a href="#7.20">7.20</a> locale-specific behavior, <a href="#3.4.2">3.4.2</a>, <a href="#J.4">J.4</a>
+ leading underscore in identifiers, <a href="#7.1.3">7.1.3</a> locale.h header, <a href="#7.11">7.11</a>, <a href="#7.26.5">7.26.5</a>
+ left-shift assignment operator (<<=), <a href="#6.5.16.2">6.5.16.2</a> localeconv function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
+ left-shift operator (<<), <a href="#6.5.7">6.5.7</a> localization, <a href="#7.11">7.11</a>
+ length localtime function, <a href="#7.23.3.4">7.23.3.4</a>
+ external name, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.11.3">6.11.3</a> log functions, <a href="#7.12.6.7">7.12.6.7</a>, <a href="#F.9.3.7">F.9.3.7</a>
+ function name, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.11.3">6.11.3</a> log type-generic macro, <a href="#7.22">7.22</a>
+ identifier, <a href="#6.4.2.1">6.4.2.1</a> log10 functions, <a href="#7.12.6.8">7.12.6.8</a>, <a href="#F.9.3.8">F.9.3.8</a>
+ internal name, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a> log10 type-generic macro, <a href="#7.22">7.22</a>
+ length function, <a href="#7.20.7.1">7.20.7.1</a>, <a href="#7.21.6.3">7.21.6.3</a>, <a href="#7.24.4.6.1">7.24.4.6.1</a>, log1p functions, <a href="#7.12.6.9">7.12.6.9</a>, <a href="#F.9.3.9">F.9.3.9</a>
+ <a href="#7.24.6.3.1">7.24.6.3.1</a> log1p type-generic macro, <a href="#7.22">7.22</a>
+ length modifier, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, log2 functions, <a href="#7.12.6.10">7.12.6.10</a>, <a href="#F.9.3.10">F.9.3.10</a>
+ <a href="#7.24.2.2">7.24.2.2</a> log2 type-generic macro, <a href="#7.22">7.22</a>
+ less-than operator (<), <a href="#6.5.8">6.5.8</a> logarithmic functions
+ less-than-or-equal-to operator (<=), <a href="#6.5.8">6.5.8</a> complex, <a href="#7.3.7">7.3.7</a>, <a href="#G.6.3">G.6.3</a>
+ letter, <a href="#5.2.1">5.2.1</a>, <a href="#7.4">7.4</a> real, <a href="#7.12.6">7.12.6</a>, <a href="#F.9.3">F.9.3</a>
+ lexical elements, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.4">6.4</a> logb functions, <a href="#7.12.6.11">7.12.6.11</a>, <a href="#F.3">F.3</a>, <a href="#F.9.3.11">F.9.3.11</a>
+ lgamma functions, <a href="#7.12.8.3">7.12.8.3</a>, <a href="#F.9.5.3">F.9.5.3</a> logb type-generic macro, <a href="#7.22">7.22</a>
+ lgamma type-generic macro, <a href="#7.22">7.22</a> logical operators
+ library, <a href="#5.1.1.1">5.1.1.1</a>, <a href="#7">7</a> AND (&&), <a href="#6.5.13">6.5.13</a>
+ future directions, <a href="#7.26">7.26</a> negation (!), <a href="#6.5.3.3">6.5.3.3</a>
+ summary, <a href="#B">B</a> OR (||), <a href="#6.5.14">6.5.14</a>
+ terms, <a href="#7.1.1">7.1.1</a> logical source lines, <a href="#5.1.1.2">5.1.1.2</a>
+ use of functions, <a href="#7.1.4">7.1.4</a> long double _Complex type, <a href="#6.2.5">6.2.5</a>
+ lifetime, <a href="#6.2.4">6.2.4</a> long double _Complex type conversion,
+ limits <a href="#6.3.1.6">6.3.1.6</a>, <a href="#6.3.1.7">6.3.1.7</a>, <a href="#6.3.1.8">6.3.1.8</a>
+ environmental, see environmental limits long double _Imaginary type, <a href="#G.2">G.2</a>
+ implementation, see implementation limits long double suffix, l or <a href="#L">L</a>, <a href="#6.4.4.2">6.4.4.2</a>
+ numerical, see numerical limits long double type, <a href="#6.2.5">6.2.5</a>, <a href="#6.4.4.2">6.4.4.2</a>, <a href="#6.7.2">6.7.2</a>,
+ translation, see translation limits <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#F.2">F.2</a>
+ limits.h header, <a href="#4">4</a>, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#6.2.5">6.2.5</a>, <a href="#7.10">7.10</a> long double type conversion, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.5">6.3.1.5</a>,
+ line buffered stream, <a href="#7.19.3">7.19.3</a> <a href="#6.3.1.7">6.3.1.7</a>, <a href="#6.3.1.8">6.3.1.8</a>
+ line number, <a href="#6.10.4">6.10.4</a>, <a href="#6.10.8">6.10.8</a> long int type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.7.2">6.7.2</a>, <a href="#7.19.6.1">7.19.6.1</a>,
+ line preprocessing directive, <a href="#6.10.4">6.10.4</a> <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>
+ lines, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#7.19.2">7.19.2</a> long int type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>,
+ preprocessing directive, <a href="#6.10">6.10</a> <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.8">6.3.1.8</a>
+ linkage, <a href="#6.2.2">6.2.2</a>, <a href="#6.7">6.7</a>, <a href="#6.7.4">6.7.4</a>, <a href="#6.7.5.2">6.7.5.2</a>, <a href="#6.9">6.9</a>, <a href="#6.9.2">6.9.2</a>, long integer suffix, l or <a href="#L">L</a>, <a href="#6.4.4.1">6.4.4.1</a>
+ <a href="#6.11.2">6.11.2</a> long long int type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.7.2">6.7.2</a>,
+<!--page 544 -->
+ <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> mbsinit function, <a href="#7.24.6.2.1">7.24.6.2.1</a>
+ long long int type conversion, <a href="#6.3.1.1">6.3.1.1</a>, mbsrtowcs function, <a href="#7.24.6.4.1">7.24.6.4.1</a>
+ <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.8">6.3.1.8</a> mbstate_t type, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.6.1">7.19.6.1</a>,
+ long long integer suffix, ll or LL, <a href="#6.4.4.1">6.4.4.1</a> <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.1">7.24.1</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#7.24.6">7.24.6</a>,
+ LONG_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a> <a href="#7.24.6.2.1">7.24.6.2.1</a>, <a href="#7.24.6.3">7.24.6.3</a>, <a href="#7.24.6.3.1">7.24.6.3.1</a>, <a href="#7.24.6.4">7.24.6.4</a>
+ LONG_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a> mbstowcs function, <a href="#6.4.5">6.4.5</a>, <a href="#7.20.8.1">7.20.8.1</a>, <a href="#7.24.6.4">7.24.6.4</a>
+ longjmp function, <a href="#7.13.1.1">7.13.1.1</a>, <a href="#7.13.2.1">7.13.2.1</a>, <a href="#7.20.4.3">7.20.4.3</a> mbtowc function, <a href="#7.20.7.1">7.20.7.1</a>, <a href="#7.20.7.2">7.20.7.2</a>, <a href="#7.20.8.1">7.20.8.1</a>,
+ loop body, <a href="#6.8.5">6.8.5</a> <a href="#7.24.6.3">7.24.6.3</a>
+ low-order bit, <a href="#3.6">3.6</a> member access operators (. and ->), <a href="#6.5.2.3">6.5.2.3</a>
+ lowercase letter, <a href="#5.2.1">5.2.1</a> member alignment, <a href="#6.7.2.1">6.7.2.1</a>
+ lrint functions, <a href="#7.12.9.5">7.12.9.5</a>, <a href="#F.3">F.3</a>, <a href="#F.9.6.5">F.9.6.5</a> memchr function, <a href="#7.21.5.1">7.21.5.1</a>
+ lrint type-generic macro, <a href="#7.22">7.22</a> memcmp function, <a href="#7.21.4">7.21.4</a>, <a href="#7.21.4.1">7.21.4.1</a>
+ lround functions, <a href="#7.12.9.7">7.12.9.7</a>, <a href="#F.9.6.7">F.9.6.7</a> memcpy function, <a href="#7.21.2.1">7.21.2.1</a>
+ lround type-generic macro, <a href="#7.22">7.22</a> memmove function, <a href="#7.21.2.2">7.21.2.2</a>
+ lvalue, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.1">6.5.1</a>, <a href="#6.5.2.4">6.5.2.4</a>, <a href="#6.5.3.1">6.5.3.1</a>, <a href="#6.5.16">6.5.16</a> memory management functions, <a href="#7.20.3">7.20.3</a>
+ memset function, <a href="#7.21.6.1">7.21.6.1</a>
+ macro argument substitution, <a href="#6.10.3.1">6.10.3.1</a> minimum functions, <a href="#7.12.12">7.12.12</a>, <a href="#F.9.9">F.9.9</a>
+ macro definition minus operator, unary, <a href="#6.5.3.3">6.5.3.3</a>
+ library function, <a href="#7.1.4">7.1.4</a> miscellaneous functions
+ macro invocation, <a href="#6.10.3">6.10.3</a> string, <a href="#7.21.6">7.21.6</a>
+ macro name, <a href="#6.10.3">6.10.3</a> wide string, <a href="#7.24.4.6">7.24.4.6</a>
+ length, <a href="#5.2.4.1">5.2.4.1</a> mktime function, <a href="#7.23.2.3">7.23.2.3</a>
+ predefined, <a href="#6.10.8">6.10.8</a>, <a href="#6.11.9">6.11.9</a> modf functions, <a href="#7.12.6.12">7.12.6.12</a>, <a href="#F.9.3.12">F.9.3.12</a>
+ redefinition, <a href="#6.10.3">6.10.3</a> modifiable lvalue, <a href="#6.3.2.1">6.3.2.1</a>
+ scope, <a href="#6.10.3.5">6.10.3.5</a> modulus functions, <a href="#7.12.6.12">7.12.6.12</a>
+ macro parameter, <a href="#6.10.3">6.10.3</a> modulus, complex, <a href="#7.3.8.1">7.3.8.1</a>
+ macro preprocessor, <a href="#6.10">6.10</a> multibyte character, <a href="#3.7.2">3.7.2</a>, <a href="#5.2.1.2">5.2.1.2</a>, <a href="#6.4.4.4">6.4.4.4</a>
+ macro replacement, <a href="#6.10.3">6.10.3</a> multibyte conversion functions
+ magnitude, complex, <a href="#7.3.8.1">7.3.8.1</a> wide character, <a href="#7.20.7">7.20.7</a>
+ main function, <a href="#5.1.2.2.1">5.1.2.2.1</a>, <a href="#5.1.2.2.3">5.1.2.2.3</a>, <a href="#6.7.3.1">6.7.3.1</a>, <a href="#6.7.4">6.7.4</a>, extended, <a href="#7.24.6">7.24.6</a>
+ <a href="#7.19.3">7.19.3</a> restartable, <a href="#7.24.6.3">7.24.6.3</a>
+ malloc function, <a href="#7.20.3">7.20.3</a>, <a href="#7.20.3.2">7.20.3.2</a>, <a href="#7.20.3.3">7.20.3.3</a>, wide string, <a href="#7.20.8">7.20.8</a>
+ <a href="#7.20.3.4">7.20.3.4</a> restartable, <a href="#7.24.6.4">7.24.6.4</a>
+ manipulation functions multibyte string, <a href="#7.1.1">7.1.1</a>
+ complex, <a href="#7.3.9">7.3.9</a> multibyte/wide character conversion functions,
+ real, <a href="#7.12.11">7.12.11</a>, <a href="#F.9.8">F.9.8</a> <a href="#7.20.7">7.20.7</a>
+ matching failure, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.8">7.24.2.8</a>, <a href="#7.24.2.10">7.24.2.10</a> extended, <a href="#7.24.6">7.24.6</a>
+ math.h header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.5">6.5</a>, <a href="#7.12">7.12</a>, <a href="#7.22">7.22</a>, <a href="#F">F</a>, <a href="#F.9">F.9</a>, restartable, <a href="#7.24.6.3">7.24.6.3</a>
+ <a href="#J.5.17">J.5.17</a> multibyte/wide string conversion functions, <a href="#7.20.8">7.20.8</a>
+ MATH_ERREXCEPT macro, <a href="#7.12">7.12</a>, <a href="#F.9">F.9</a> restartable, <a href="#7.24.6.4">7.24.6.4</a>
+ math_errhandling macro, <a href="#7.1.3">7.1.3</a>, <a href="#7.12">7.12</a>, <a href="#F.9">F.9</a> multidimensional array, <a href="#6.5.2.1">6.5.2.1</a>
+ MATH_ERRNO macro, <a href="#7.12">7.12</a> multiplication assignment operator (*=), <a href="#6.5.16.2">6.5.16.2</a>
+ maximum functions, <a href="#7.12.12">7.12.12</a>, <a href="#F.9.9">F.9.9</a> multiplication operator (*), <a href="#6.5.5">6.5.5</a>, <a href="#F.3">F.3</a>, <a href="#G.5.1">G.5.1</a>
+ MB_CUR_MAX macro, <a href="#7.1.1">7.1.1</a>, <a href="#7.20">7.20</a>, <a href="#7.20.7.2">7.20.7.2</a>, multiplicative expressions, <a href="#6.5.5">6.5.5</a>, <a href="#G.5.1">G.5.1</a>
+ <a href="#7.20.7.3">7.20.7.3</a>, <a href="#7.24.6.3.3">7.24.6.3.3</a>
+ MB_LEN_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.1.1">7.1.1</a>, <a href="#7.20">7.20</a> n-char sequence, <a href="#7.20.1.3">7.20.1.3</a>
+ mblen function, <a href="#7.20.7.1">7.20.7.1</a>, <a href="#7.24.6.3">7.24.6.3</a> n-wchar sequence, <a href="#7.24.4.1.1">7.24.4.1.1</a>
+ mbrlen function, <a href="#7.24.6.3.1">7.24.6.3.1</a> name
+ mbrtowc function, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, external, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a>, <a href="#6.11.3">6.11.3</a>
+ <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#7.24.6.3.1">7.24.6.3.1</a>, <a href="#7.24.6.3.2">7.24.6.3.2</a>, file, <a href="#7.19.3">7.19.3</a>
+ <a href="#7.24.6.4.1">7.24.6.4.1</a> internal, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.2.1">6.4.2.1</a>
+<!--page 545 -->
+ label, <a href="#6.2.3">6.2.3</a> octal-character escape sequence (\octal digits),
+ structure/union member, <a href="#6.2.3">6.2.3</a> <a href="#6.4.4.4">6.4.4.4</a>
+ name spaces, <a href="#6.2.3">6.2.3</a> offsetof macro, <a href="#7.17">7.17</a>
+ named label, <a href="#6.8.1">6.8.1</a> on-off switch, <a href="#6.10.6">6.10.6</a>
+ NaN, <a href="#5.2.4.2.2">5.2.4.2.2</a> ones' complement, <a href="#6.2.6.2">6.2.6.2</a>
+ nan functions, <a href="#7.12.11.2">7.12.11.2</a>, <a href="#F.2.1">F.2.1</a>, <a href="#F.9.8.2">F.9.8.2</a> operand, <a href="#6.4.6">6.4.6</a>, <a href="#6.5">6.5</a>
+ NAN macro, <a href="#7.12">7.12</a>, <a href="#F.2.1">F.2.1</a> operating system, <a href="#5.1.2.1">5.1.2.1</a>, <a href="#7.20.4.6">7.20.4.6</a>
+ NDEBUG macro, <a href="#7.2">7.2</a> operations on files, <a href="#7.19.4">7.19.4</a>
+ nearbyint functions, <a href="#7.12.9.3">7.12.9.3</a>, <a href="#7.12.9.4">7.12.9.4</a>, <a href="#F.3">F.3</a>, operator, <a href="#6.4.6">6.4.6</a>
+ <a href="#F.9.6.3">F.9.6.3</a> operators, <a href="#6.5">6.5</a>
+ nearbyint type-generic macro, <a href="#7.22">7.22</a> assignment, <a href="#6.5.16">6.5.16</a>
+ nearest integer functions, <a href="#7.12.9">7.12.9</a>, <a href="#F.9.6">F.9.6</a> associativity, <a href="#6.5">6.5</a>
+ negation operator (!), <a href="#6.5.3.3">6.5.3.3</a> equality, <a href="#6.5.9">6.5.9</a>
+ negative zero, <a href="#6.2.6.2">6.2.6.2</a>, <a href="#7.12.11.1">7.12.11.1</a> multiplicative, <a href="#6.5.5">6.5.5</a>, <a href="#G.5.1">G.5.1</a>
+ new-line character, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>, <a href="#6.10">6.10</a>, <a href="#6.10.4">6.10.4</a> postfix, <a href="#6.5.2">6.5.2</a>
+ new-line escape sequence (\n), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>, precedence, <a href="#6.5">6.5</a>
+ <a href="#7.4.1.10">7.4.1.10</a> preprocessing, <a href="#6.10.1">6.10.1</a>, <a href="#6.10.3.2">6.10.3.2</a>, <a href="#6.10.3.3">6.10.3.3</a>, <a href="#6.10.9">6.10.9</a>
+ nextafter functions, <a href="#7.12.11.3">7.12.11.3</a>, <a href="#7.12.11.4">7.12.11.4</a>, <a href="#F.3">F.3</a>, relational, <a href="#6.5.8">6.5.8</a>
+ <a href="#F.9.8.3">F.9.8.3</a> shift, <a href="#6.5.7">6.5.7</a>
+ nextafter type-generic macro, <a href="#7.22">7.22</a> unary, <a href="#6.5.3">6.5.3</a>
+ nexttoward functions, <a href="#7.12.11.4">7.12.11.4</a>, <a href="#F.3">F.3</a>, <a href="#F.9.8.4">F.9.8.4</a> unary arithmetic, <a href="#6.5.3.3">6.5.3.3</a>
+ nexttoward type-generic macro, <a href="#7.22">7.22</a> or macro, <a href="#7.9">7.9</a>
+ no linkage, <a href="#6.2.2">6.2.2</a> OR operators
+ non-stop floating-point control mode, <a href="#7.6.4.2">7.6.4.2</a> bitwise exclusive (^), <a href="#6.5.11">6.5.11</a>
+ nongraphic characters, <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a> bitwise exclusive assignment (^=), <a href="#6.5.16.2">6.5.16.2</a>
+ nonlocal jumps header, <a href="#7.13">7.13</a> bitwise inclusive (|), <a href="#6.5.12">6.5.12</a>
+ norm, complex, <a href="#7.3.8.1">7.3.8.1</a> bitwise inclusive assignment (|=), <a href="#6.5.16.2">6.5.16.2</a>
+ not macro, <a href="#7.9">7.9</a> logical (||), <a href="#6.5.14">6.5.14</a>
+ not-equal-to operator, see inequality operator or_eq macro, <a href="#7.9">7.9</a>
+ not_eq macro, <a href="#7.9">7.9</a> order of allocated storage, <a href="#7.20.3">7.20.3</a>
+ null character (\0), <a href="#5.2.1">5.2.1</a>, <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.4.5">6.4.5</a> order of evaluation, <a href="#6.5">6.5</a>
+ padding of binary stream, <a href="#7.19.2">7.19.2</a> ordinary identifier name space, <a href="#6.2.3">6.2.3</a>
+ NULL macro, <a href="#7.11">7.11</a>, <a href="#7.17">7.17</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.20">7.20</a>, <a href="#7.21.1">7.21.1</a>, orientation of stream, <a href="#7.19.2">7.19.2</a>, <a href="#7.24.3.5">7.24.3.5</a>
+ <a href="#7.23.1">7.23.1</a>, <a href="#7.24.1">7.24.1</a> outer scope, <a href="#6.2.1">6.2.1</a>
+ null pointer, <a href="#6.3.2.3">6.3.2.3</a>
+ null pointer constant, <a href="#6.3.2.3">6.3.2.3</a> padding
+ null preprocessing directive, <a href="#6.10.7">6.10.7</a> binary stream, <a href="#7.19.2">7.19.2</a>
+ null statement, <a href="#6.8.3">6.8.3</a> bits, <a href="#6.2.6.2">6.2.6.2</a>, <a href="#7.18.1.1">7.18.1.1</a>
+ null wide character, <a href="#7.1.1">7.1.1</a> structure/union, <a href="#6.2.6.1">6.2.6.1</a>, <a href="#6.7.2.1">6.7.2.1</a>
+ number classification macros, <a href="#7.12">7.12</a>, <a href="#7.12.3.1">7.12.3.1</a> parameter, <a href="#3.15">3.15</a>
+ numeric conversion functions, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.20.1">7.20.1</a> array, <a href="#6.9.1">6.9.1</a>
+ wide string, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.24.4.1">7.24.4.1</a> ellipsis, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.10.3">6.10.3</a>
+ numerical limits, <a href="#5.2.4.2">5.2.4.2</a> function, <a href="#6.5.2.2">6.5.2.2</a>, <a href="#6.7">6.7</a>, <a href="#6.9.1">6.9.1</a>
+ macro, <a href="#6.10.3">6.10.3</a>
+ object, <a href="#3.14">3.14</a> main function, <a href="#5.1.2.2.1">5.1.2.2.1</a>
+ object representation, <a href="#6.2.6.1">6.2.6.1</a> program, <a href="#5.1.2.2.1">5.1.2.2.1</a>
+ object type, <a href="#6.2.5">6.2.5</a> parameter type list, <a href="#6.7.5.3">6.7.5.3</a>
+ object-like macro, <a href="#6.10.3">6.10.3</a> parentheses punctuator (( )), <a href="#6.7.5.3">6.7.5.3</a>, <a href="#6.8.4">6.8.4</a>, <a href="#6.8.5">6.8.5</a>
+ obsolescence, <a href="#6.11">6.11</a>, <a href="#7.26">7.26</a> parenthesized expression, <a href="#6.5.1">6.5.1</a>
+ octal constant, <a href="#6.4.4.1">6.4.4.1</a> parse state, <a href="#7.19.2">7.19.2</a>
+ octal digit, <a href="#6.4.4.1">6.4.4.1</a>, <a href="#6.4.4.4">6.4.4.4</a> permitted form of initializer, <a href="#6.6">6.6</a>
+<!--page 546 -->
+ perror function, <a href="#7.19.10.4">7.19.10.4</a> PRIcPTR macros, <a href="#7.8.1">7.8.1</a>
+ phase angle, complex, <a href="#7.3.9.1">7.3.9.1</a> primary expression, <a href="#6.5.1">6.5.1</a>
+ physical source lines, <a href="#5.1.1.2">5.1.1.2</a> printf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.3">7.19.6.3</a>, <a href="#7.19.6.10">7.19.6.10</a>
+ placemarker, <a href="#6.10.3.3">6.10.3.3</a> printing character, <a href="#5.2.2">5.2.2</a>, <a href="#7.4">7.4</a>, <a href="#7.4.1.8">7.4.1.8</a>
+ plus operator, unary, <a href="#6.5.3.3">6.5.3.3</a> printing wide character, <a href="#7.25.2">7.25.2</a>
+ pointer arithmetic, <a href="#6.5.6">6.5.6</a> program diagnostics, <a href="#7.2.1">7.2.1</a>
+ pointer comparison, <a href="#6.5.8">6.5.8</a> program execution, <a href="#5.1.2.2.2">5.1.2.2.2</a>, <a href="#5.1.2.3">5.1.2.3</a>
+ pointer declarator, <a href="#6.7.5.1">6.7.5.1</a> program file, <a href="#5.1.1.1">5.1.1.1</a>
+ pointer operator (->), <a href="#6.5.2.3">6.5.2.3</a> program image, <a href="#5.1.1.2">5.1.1.2</a>
+ pointer to function, <a href="#6.5.2.2">6.5.2.2</a> program name (argv[0]), <a href="#5.1.2.2.1">5.1.2.2.1</a>
+ pointer type, <a href="#6.2.5">6.2.5</a> program parameters, <a href="#5.1.2.2.1">5.1.2.2.1</a>
+ pointer type conversion, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.3.2.3">6.3.2.3</a> program startup, <a href="#5.1.2">5.1.2</a>, <a href="#5.1.2.1">5.1.2.1</a>, <a href="#5.1.2.2.1">5.1.2.2.1</a>
+ pointer, null, <a href="#6.3.2.3">6.3.2.3</a> program structure, <a href="#5.1.1.1">5.1.1.1</a>
+ portability, <a href="#4">4</a>, <a href="#J">J</a> program termination, <a href="#5.1.2">5.1.2</a>, <a href="#5.1.2.1">5.1.2.1</a>, <a href="#5.1.2.2.3">5.1.2.2.3</a>,
+ position indicator, file, see file position indicator <a href="#5.1.2.3">5.1.2.3</a>
+ positive difference, <a href="#7.12.12.1">7.12.12.1</a> program, conforming, <a href="#4">4</a>
+ positive difference functions, <a href="#7.12.12">7.12.12</a>, <a href="#F.9.9">F.9.9</a> program, strictly conforming, <a href="#4">4</a>
+ postfix decrement operator (--), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.4">6.5.2.4</a> promotions
+ postfix expressions, <a href="#6.5.2">6.5.2</a> default argument, <a href="#6.5.2.2">6.5.2.2</a>
+ postfix increment operator (++), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.4">6.5.2.4</a> integer, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#6.3.1.1">6.3.1.1</a>
+ pow functions, <a href="#7.12.7.4">7.12.7.4</a>, <a href="#F.9.4.4">F.9.4.4</a> prototype, see function prototype
+ pow type-generic macro, <a href="#7.22">7.22</a> pseudo-random sequence functions, <a href="#7.20.2">7.20.2</a>
+ power functions PTRDIFF_MAX macro, <a href="#7.18.3">7.18.3</a>
+ complex, <a href="#7.3.8">7.3.8</a>, <a href="#G.6.4">G.6.4</a> PTRDIFF_MIN macro, <a href="#7.18.3">7.18.3</a>
+ real, <a href="#7.12.7">7.12.7</a>, <a href="#F.9.4">F.9.4</a> ptrdiff_t type, <a href="#7.17">7.17</a>, <a href="#7.18.3">7.18.3</a>, <a href="#7.19.6.1">7.19.6.1</a>,
+ pp-number, <a href="#6.4.8">6.4.8</a> <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>
+ pragma operator, <a href="#6.10.9">6.10.9</a> punctuators, <a href="#6.4.6">6.4.6</a>
+ pragma preprocessing directive, <a href="#6.10.6">6.10.6</a>, <a href="#6.11.8">6.11.8</a> putc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.8">7.19.7.8</a>, <a href="#7.19.7.9">7.19.7.9</a>
+ precedence of operators, <a href="#6.5">6.5</a> putchar function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.9">7.19.7.9</a>
+ precedence of syntax rules, <a href="#5.1.1.2">5.1.1.2</a> puts function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.10">7.19.7.10</a>
+ precision, <a href="#6.2.6.2">6.2.6.2</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.2.1">7.24.2.1</a> putwc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.8">7.24.3.8</a>, <a href="#7.24.3.9">7.24.3.9</a>
+ excess, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.8">6.3.1.8</a>, <a href="#6.8.6.4">6.8.6.4</a> putwchar function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.9">7.24.3.9</a>
+ predefined macro names, <a href="#6.10.8">6.10.8</a>, <a href="#6.11.9">6.11.9</a>
+ prefix decrement operator (--), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.1">6.5.3.1</a> qsort function, <a href="#7.20.5">7.20.5</a>, <a href="#7.20.5.2">7.20.5.2</a>
+ prefix increment operator (++), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3.1">6.5.3.1</a> qualified types, <a href="#6.2.5">6.2.5</a>
+ preprocessing concatenation, <a href="#6.10.3.3">6.10.3.3</a> qualified version of type, <a href="#6.2.5">6.2.5</a>
+ preprocessing directives, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.10">6.10</a> question-mark escape sequence (\?), <a href="#6.4.4.4">6.4.4.4</a>
+ preprocessing file, <a href="#5.1.1.1">5.1.1.1</a>, <a href="#6.10">6.10</a> quiet NaN, <a href="#5.2.4.2.2">5.2.4.2.2</a>
+ preprocessing numbers, <a href="#6.4">6.4</a>, <a href="#6.4.8">6.4.8</a>
+ preprocessing operators raise function, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.14.2.1">7.14.2.1</a>, <a href="#7.20.4.1">7.20.4.1</a>
+ #, <a href="#6.10.3.2">6.10.3.2</a> rand function, <a href="#7.20">7.20</a>, <a href="#7.20.2.1">7.20.2.1</a>, <a href="#7.20.2.2">7.20.2.2</a>
+ ##, <a href="#6.10.3.3">6.10.3.3</a> RAND_MAX macro, <a href="#7.20">7.20</a>, <a href="#7.20.2.1">7.20.2.1</a>
+ _Pragma, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.10.9">6.10.9</a> range
+ defined, <a href="#6.10.1">6.10.1</a> excess, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.3.1.5">6.3.1.5</a>, <a href="#6.3.1.8">6.3.1.8</a>, <a href="#6.8.6.4">6.8.6.4</a>
+ preprocessing tokens, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.4">6.4</a>, <a href="#6.10">6.10</a> range error, <a href="#7.12.1">7.12.1</a>, <a href="#7.12.5.3">7.12.5.3</a>, <a href="#7.12.5.4">7.12.5.4</a>, <a href="#7.12.5.5">7.12.5.5</a>,
+ preprocessing translation unit, <a href="#5.1.1.1">5.1.1.1</a> <a href="#7.12.6.1">7.12.6.1</a>, <a href="#7.12.6.2">7.12.6.2</a>, <a href="#7.12.6.3">7.12.6.3</a>, <a href="#7.12.6.5">7.12.6.5</a>,
+ preprocessor, <a href="#6.10">6.10</a> <a href="#7.12.6.6">7.12.6.6</a>, <a href="#7.12.6.7">7.12.6.7</a>, <a href="#7.12.6.8">7.12.6.8</a>, <a href="#7.12.6.9">7.12.6.9</a>,
+ PRIcFASTN macros, <a href="#7.8.1">7.8.1</a> <a href="#7.12.6.10">7.12.6.10</a>, <a href="#7.12.6.11">7.12.6.11</a>, <a href="#7.12.6.13">7.12.6.13</a>, <a href="#7.12.7.3">7.12.7.3</a>,
+ PRIcLEASTN macros, <a href="#7.8.1">7.8.1</a> <a href="#7.12.7.4">7.12.7.4</a>, <a href="#7.12.8.2">7.12.8.2</a>, <a href="#7.12.8.3">7.12.8.3</a>, <a href="#7.12.8.4">7.12.8.4</a>,
+ PRIcMAX macros, <a href="#7.8.1">7.8.1</a> <a href="#7.12.9.5">7.12.9.5</a>, <a href="#7.12.9.7">7.12.9.7</a>, <a href="#7.12.11.3">7.12.11.3</a>, <a href="#7.12.12.1">7.12.12.1</a>,
+ PRIcN macros, <a href="#7.8.1">7.8.1</a> <a href="#7.12.13.1">7.12.13.1</a>
+<!--page 547 -->
+ rank, see integer conversion rank same scope, <a href="#6.2.1">6.2.1</a>
+ real floating type conversion, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.5">6.3.1.5</a>, save calling environment function, <a href="#7.13.1">7.13.1</a>
+ <a href="#6.3.1.7">6.3.1.7</a>, <a href="#F.3">F.3</a>, <a href="#F.4">F.4</a> scalar types, <a href="#6.2.5">6.2.5</a>
+ real floating types, <a href="#6.2.5">6.2.5</a> scalbln function, <a href="#7.12.6.13">7.12.6.13</a>, <a href="#F.3">F.3</a>, <a href="#F.9.3.13">F.9.3.13</a>
+ real type domain, <a href="#6.2.5">6.2.5</a> scalbln type-generic macro, <a href="#7.22">7.22</a>
+ real types, <a href="#6.2.5">6.2.5</a> scalbn function, <a href="#7.12.6.13">7.12.6.13</a>, <a href="#F.3">F.3</a>, <a href="#F.9.3.13">F.9.3.13</a>
+ real-floating, <a href="#7.12.3">7.12.3</a> scalbn type-generic macro, <a href="#7.22">7.22</a>
+ realloc function, <a href="#7.20.3">7.20.3</a>, <a href="#7.20.3.2">7.20.3.2</a>, <a href="#7.20.3.4">7.20.3.4</a> scanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.4">7.19.6.4</a>, <a href="#7.19.6.11">7.19.6.11</a>
+ recommended practice, <a href="#3.16">3.16</a> scanlist, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>
+ recursion, <a href="#6.5.2.2">6.5.2.2</a> scanset, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>
+ recursive function call, <a href="#6.5.2.2">6.5.2.2</a> SCHAR_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
+ redefinition of macro, <a href="#6.10.3">6.10.3</a> SCHAR_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
+ reentrancy, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.3">5.2.3</a> SCNcFASTN macros, <a href="#7.8.1">7.8.1</a>
+ library functions, <a href="#7.1.4">7.1.4</a> SCNcLEASTN macros, <a href="#7.8.1">7.8.1</a>
+ referenced type, <a href="#6.2.5">6.2.5</a> SCNcMAX macros, <a href="#7.8.1">7.8.1</a>
+ register storage-class specifier, <a href="#6.7.1">6.7.1</a>, <a href="#6.9">6.9</a> SCNcN macros, <a href="#7.8.1">7.8.1</a>
+ relational expressions, <a href="#6.5.8">6.5.8</a> SCNcPTR macros, <a href="#7.8.1">7.8.1</a>
+ reliability of data, interrupted, <a href="#5.1.2.3">5.1.2.3</a> scope of identifier, <a href="#6.2.1">6.2.1</a>, <a href="#6.9.2">6.9.2</a>
+ remainder assignment operator (%=), <a href="#6.5.16.2">6.5.16.2</a> search functions
+ remainder functions, <a href="#7.12.10">7.12.10</a>, <a href="#F.9.7">F.9.7</a> string, <a href="#7.21.5">7.21.5</a>
+ remainder functions, <a href="#7.12.10.2">7.12.10.2</a>, <a href="#7.12.10.3">7.12.10.3</a>, <a href="#F.3">F.3</a>, utility, <a href="#7.20.5">7.20.5</a>
+ <a href="#F.9.7.2">F.9.7.2</a> wide string, <a href="#7.24.4.5">7.24.4.5</a>
+ remainder operator (%), <a href="#6.5.5">6.5.5</a> SEEK_CUR macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.9.2">7.19.9.2</a>
+ remainder type-generic macro, <a href="#7.22">7.22</a> SEEK_END macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.9.2">7.19.9.2</a>
+ remove function, <a href="#7.19.4.1">7.19.4.1</a>, <a href="#7.19.4.4">7.19.4.4</a> SEEK_SET macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.9.2">7.19.9.2</a>
+ remquo functions, <a href="#7.12.10.3">7.12.10.3</a>, <a href="#F.3">F.3</a>, <a href="#F.9.7.3">F.9.7.3</a> selection statements, <a href="#6.8.4">6.8.4</a>
+ remquo type-generic macro, <a href="#7.22">7.22</a> self-referential structure, <a href="#6.7.2.3">6.7.2.3</a>
+ rename function, <a href="#7.19.4.2">7.19.4.2</a> semicolon punctuator (;), <a href="#6.7">6.7</a>, <a href="#6.7.2.1">6.7.2.1</a>, <a href="#6.8.3">6.8.3</a>,
+ representations of types, <a href="#6.2.6">6.2.6</a> <a href="#6.8.5">6.8.5</a>, <a href="#6.8.6">6.8.6</a>
+ pointer, <a href="#6.2.5">6.2.5</a> separate compilation, <a href="#5.1.1.1">5.1.1.1</a>
+ rescanning and replacement, <a href="#6.10.3.4">6.10.3.4</a> separate translation, <a href="#5.1.1.1">5.1.1.1</a>
+ reserved identifiers, <a href="#6.4.1">6.4.1</a>, <a href="#7.1.3">7.1.3</a> sequence points, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#6.5">6.5</a>, <a href="#6.8">6.8</a>, <a href="#7.1.4">7.1.4</a>, <a href="#7.19.6">7.19.6</a>,
+ restartable multibyte/wide character conversion <a href="#7.20.5">7.20.5</a>, <a href="#7.24.2">7.24.2</a>, <a href="#C">C</a>
+ functions, <a href="#7.24.6.3">7.24.6.3</a> sequencing of statements, <a href="#6.8">6.8</a>
+ restartable multibyte/wide string conversion setbuf function, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.5.1">7.19.5.1</a>, <a href="#7.19.5.5">7.19.5.5</a>
+ functions, <a href="#7.24.6.4">7.24.6.4</a> setjmp macro, <a href="#7.1.3">7.1.3</a>, <a href="#7.13.1.1">7.13.1.1</a>, <a href="#7.13.2.1">7.13.2.1</a>
+ restore calling environment function, <a href="#7.13.2">7.13.2</a> setjmp.h header, <a href="#7.13">7.13</a>
+ restrict type qualifier, <a href="#6.7.3">6.7.3</a>, <a href="#6.7.3.1">6.7.3.1</a> setlocale function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.11.2.1">7.11.2.1</a>
+ restrict-qualified type, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.3">6.7.3</a> setvbuf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.5.1">7.19.5.1</a>,
+ return statement, <a href="#6.8.6.4">6.8.6.4</a> <a href="#7.19.5.5">7.19.5.5</a>, <a href="#7.19.5.6">7.19.5.6</a>
+ rewind function, <a href="#7.19.5.3">7.19.5.3</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.19.9.5">7.19.9.5</a>, shall, <a href="#4">4</a>
+ <a href="#7.24.3.10">7.24.3.10</a> shift expressions, <a href="#6.5.7">6.5.7</a>
+ right-shift assignment operator (>>=), <a href="#6.5.16.2">6.5.16.2</a> shift sequence, <a href="#7.1.1">7.1.1</a>
+ right-shift operator (>>), <a href="#6.5.7">6.5.7</a> shift states, <a href="#5.2.1.2">5.2.1.2</a>
+ rint functions, <a href="#7.12.9.4">7.12.9.4</a>, <a href="#F.3">F.3</a>, <a href="#F.9.6.4">F.9.6.4</a> short identifier, character, <a href="#5.2.4.1">5.2.4.1</a>, <a href="#6.4.3">6.4.3</a>
+ rint type-generic macro, <a href="#7.22">7.22</a> short int type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.7.2">6.7.2</a>, <a href="#7.19.6.1">7.19.6.1</a>,
+ round functions, <a href="#7.12.9.6">7.12.9.6</a>, <a href="#F.9.6.6">F.9.6.6</a> <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a>
+ round type-generic macro, <a href="#7.22">7.22</a> short int type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>,
+ rounding mode, floating point, <a href="#5.2.4.2.2">5.2.4.2.2</a> <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.8">6.3.1.8</a>
+ rvalue, <a href="#6.3.2.1">6.3.2.1</a> SHRT_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
+ SHRT_MIN macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
+<!--page 548 -->
+ side effects, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#6.5">6.5</a> source lines, <a href="#5.1.1.2">5.1.1.2</a>
+ SIG_ATOMIC_MAX macro, <a href="#7.18.3">7.18.3</a> source text, <a href="#5.1.1.2">5.1.1.2</a>
+ SIG_ATOMIC_MIN macro, <a href="#7.18.3">7.18.3</a> space character (' '), <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>, <a href="#7.4.1.3">7.4.1.3</a>,
+ sig_atomic_t type, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.18.3">7.18.3</a> <a href="#7.4.1.10">7.4.1.10</a>, <a href="#7.25.2.1.3">7.25.2.1.3</a>
+ SIG_DFL macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a> sprintf function, <a href="#7.19.6.6">7.19.6.6</a>, <a href="#7.19.6.13">7.19.6.13</a>
+ SIG_ERR macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a> sqrt functions, <a href="#7.12.7.5">7.12.7.5</a>, <a href="#F.3">F.3</a>, <a href="#F.9.4.5">F.9.4.5</a>
+ SIG_IGN macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a> sqrt type-generic macro, <a href="#7.22">7.22</a>
+ SIGABRT macro, <a href="#7.14">7.14</a>, <a href="#7.20.4.1">7.20.4.1</a> srand function, <a href="#7.20.2.2">7.20.2.2</a>
+ SIGFPE macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#J.5.17">J.5.17</a> sscanf function, <a href="#7.19.6.7">7.19.6.7</a>, <a href="#7.19.6.14">7.19.6.14</a>
+ SIGILL macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a> standard error stream, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.10.4">7.19.10.4</a>
+ SIGINT macro, <a href="#7.14">7.14</a> standard headers, <a href="#4">4</a>, <a href="#7.1.2">7.1.2</a>
+ sign and magnitude, <a href="#6.2.6.2">6.2.6.2</a> <a href="#7.2"><assert.h></a>, <a href="#7.2">7.2</a>, <a href="#B.1">B.1</a>
+ sign bit, <a href="#6.2.6.2">6.2.6.2</a> <a href="#7.3"><complex.h></a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.3">7.3</a>, <a href="#7.22">7.22</a>, <a href="#7.26.1">7.26.1</a>,
+ signal function, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.20.4.4">7.20.4.4</a> <a href="#G.6">G.6</a>, <a href="#J.5.17">J.5.17</a>
+ signal handler, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.3">5.2.3</a>, <a href="#7.14.1.1">7.14.1.1</a>, <a href="#7.14.2.1">7.14.2.1</a> <a href="#7.4"><ctype.h></a>, <a href="#7.4">7.4</a>, <a href="#7.26.2">7.26.2</a>
+ signal handling functions, <a href="#7.14.1">7.14.1</a> <a href="#7.5"><errno.h></a>, <a href="#7.5">7.5</a>, <a href="#7.26.3">7.26.3</a>
+ signal.h header, <a href="#7.14">7.14</a>, <a href="#7.26.6">7.26.6</a> <a href="#7.6"><fenv.h></a>, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.6">7.6</a>, <a href="#7.12">7.12</a>, <a href="#F">F</a>, <a href="#H">H</a>
+ signaling NaN, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#F.2.1">F.2.1</a> <a href="#7.7"><float.h></a>, <a href="#4">4</a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.7">7.7</a>, <a href="#7.20.1.3">7.20.1.3</a>,
+ signals, <a href="#5.1.2.3">5.1.2.3</a>, <a href="#5.2.3">5.2.3</a>, <a href="#7.14.1">7.14.1</a> <a href="#7.24.4.1.1">7.24.4.1.1</a>
+ signbit macro, <a href="#7.12.3.6">7.12.3.6</a>, <a href="#F.3">F.3</a> <a href="#7.8"><inttypes.h></a>, <a href="#7.8">7.8</a>, <a href="#7.26.4">7.26.4</a>
+ signed char type, <a href="#6.2.5">6.2.5</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.9"><iso646.h></a>, <a href="#4">4</a>, <a href="#7.9">7.9</a>
+ <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> <a href="#7.10"><limits.h></a>, <a href="#4">4</a>, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#6.2.5">6.2.5</a>, <a href="#7.10">7.10</a>
+ signed character, <a href="#6.3.1.1">6.3.1.1</a> <a href="#7.11"><locale.h></a>, <a href="#7.11">7.11</a>, <a href="#7.26.5">7.26.5</a>
+ signed integer types, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.4.4.1">6.4.4.1</a> <a href="#7.12"><math.h></a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#6.5">6.5</a>, <a href="#7.12">7.12</a>, <a href="#7.22">7.22</a>, <a href="#F">F</a>, <a href="#F.9">F.9</a>,
+ signed type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#J.5.17">J.5.17</a>
+ <a href="#6.3.1.8">6.3.1.8</a> <a href="#7.13"><setjmp.h></a>, <a href="#7.13">7.13</a>
+ signed types, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2">6.7.2</a> <a href="#7.14"><signal.h></a>, <a href="#7.14">7.14</a>, <a href="#7.26.6">7.26.6</a>
+ significand part, <a href="#6.4.4.2">6.4.4.2</a> <a href="#7.15"><stdarg.h></a>, <a href="#4">4</a>, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#7.15">7.15</a>
+ SIGSEGV macro, <a href="#7.14">7.14</a>, <a href="#7.14.1.1">7.14.1.1</a> <a href="#7.16"><stdbool.h></a>, <a href="#4">4</a>, <a href="#7.16">7.16</a>, <a href="#7.26.7">7.26.7</a>, <a href="#H">H</a>
+ SIGTERM macro, <a href="#7.14">7.14</a> <a href="#7.17"><stddef.h></a>, <a href="#4">4</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.3.2.3">6.3.2.3</a>, <a href="#6.4.4.4">6.4.4.4</a>,
+ simple assignment operator (=), <a href="#6.5.16.1">6.5.16.1</a> <a href="#6.4.5">6.4.5</a>, <a href="#6.5.3.4">6.5.3.4</a>, <a href="#6.5.6">6.5.6</a>, <a href="#7.17">7.17</a>
+ sin functions, <a href="#7.12.4.6">7.12.4.6</a>, <a href="#F.9.1.6">F.9.1.6</a> <a href="#7.18"><stdint.h></a>, <a href="#4">4</a>, <a href="#5.2.4.2">5.2.4.2</a>, <a href="#6.10.1">6.10.1</a>, <a href="#7.8">7.8</a>, <a href="#7.18">7.18</a>,
+ sin type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> <a href="#7.26.8">7.26.8</a>
+ single-byte character, <a href="#3.7.1">3.7.1</a>, <a href="#5.2.1.2">5.2.1.2</a> <a href="#7.19"><stdio.h></a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19">7.19</a>, <a href="#7.26.9">7.26.9</a>, <a href="#F">F</a>
+ single-byte/wide character conversion functions, <a href="#7.20"><stdlib.h></a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.20">7.20</a>, <a href="#7.26.10">7.26.10</a>, <a href="#F">F</a>
+ <a href="#7.24.6.1">7.24.6.1</a> <a href="#7.21"><string.h></a>, <a href="#7.21">7.21</a>, <a href="#7.26.11">7.26.11</a>
+ single-precision arithmetic, <a href="#5.1.2.3">5.1.2.3</a> <a href="#7.22"><tgmath.h></a>, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
+ single-quote escape sequence (\'), <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.4.5">6.4.5</a> <a href="#7.23"><time.h></a>, <a href="#7.23">7.23</a>
+ sinh functions, <a href="#7.12.5.5">7.12.5.5</a>, <a href="#F.9.2.5">F.9.2.5</a> <a href="#7.24"><wchar.h></a>, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.24">7.24</a>, <a href="#7.26.12">7.26.12</a>,
+ sinh type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> <a href="#F">F</a>
+ SIZE_MAX macro, <a href="#7.18.3">7.18.3</a> <a href="#7.25"><wctype.h></a>, <a href="#7.25">7.25</a>, <a href="#7.26.13">7.26.13</a>
+ size_t type, <a href="#6.5.3.4">6.5.3.4</a>, <a href="#7.17">7.17</a>, <a href="#7.18.3">7.18.3</a>, <a href="#7.19.1">7.19.1</a>, standard input stream, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>
+ <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20">7.20</a>, <a href="#7.21.1">7.21.1</a>, <a href="#7.23.1">7.23.1</a>, standard integer types, <a href="#6.2.5">6.2.5</a>
+ <a href="#7.24.1">7.24.1</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> standard output stream, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a>
+ sizeof operator, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.3">6.5.3</a>, <a href="#6.5.3.4">6.5.3.4</a> standard signed integer types, <a href="#6.2.5">6.2.5</a>
+ snprintf function, <a href="#7.19.6.5">7.19.6.5</a>, <a href="#7.19.6.12">7.19.6.12</a> state-dependent encoding, <a href="#5.2.1.2">5.2.1.2</a>, <a href="#7.20.7">7.20.7</a>
+ sorting utility functions, <a href="#7.20.5">7.20.5</a> statements, <a href="#6.8">6.8</a>
+ source character set, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a> break, <a href="#6.8.6.3">6.8.6.3</a>
+ source file, <a href="#5.1.1.1">5.1.1.1</a> compound, <a href="#6.8.2">6.8.2</a>
+ name, <a href="#6.10.4">6.10.4</a>, <a href="#6.10.8">6.10.8</a> continue, <a href="#6.8.6.2">6.8.6.2</a>
+ source file inclusion, <a href="#6.10.2">6.10.2</a> do, <a href="#6.8.5.2">6.8.5.2</a>
+<!--page 549 -->
+ else, <a href="#6.8.4.1">6.8.4.1</a> strictly conforming program, <a href="#4">4</a>
+ expression, <a href="#6.8.3">6.8.3</a> string, <a href="#7.1.1">7.1.1</a>
+ for, <a href="#6.8.5.3">6.8.5.3</a> comparison functions, <a href="#7.21.4">7.21.4</a>
+ goto, <a href="#6.8.6.1">6.8.6.1</a> concatenation functions, <a href="#7.21.3">7.21.3</a>
+ if, <a href="#6.8.4.1">6.8.4.1</a> conversion functions, <a href="#7.11.1.1">7.11.1.1</a>
+ iteration, <a href="#6.8.5">6.8.5</a> copying functions, <a href="#7.21.2">7.21.2</a>
+ jump, <a href="#6.8.6">6.8.6</a> library function conventions, <a href="#7.21.1">7.21.1</a>
+ labeled, <a href="#6.8.1">6.8.1</a> literal, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1">5.2.1</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.4.5">6.4.5</a>, <a href="#6.5.1">6.5.1</a>, <a href="#6.7.8">6.7.8</a>
+ null, <a href="#6.8.3">6.8.3</a> miscellaneous functions, <a href="#7.21.6">7.21.6</a>
+ return, <a href="#6.8.6.4">6.8.6.4</a> numeric conversion functions, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.20.1">7.20.1</a>
+ selection, <a href="#6.8.4">6.8.4</a> search functions, <a href="#7.21.5">7.21.5</a>
+ sequencing, <a href="#6.8">6.8</a> string handling header, <a href="#7.21">7.21</a>
+ switch, <a href="#6.8.4.2">6.8.4.2</a> string.h header, <a href="#7.21">7.21</a>, <a href="#7.26.11">7.26.11</a>
+ while, <a href="#6.8.5.1">6.8.5.1</a> stringizing, <a href="#6.10.3.2">6.10.3.2</a>, <a href="#6.10.9">6.10.9</a>
+ static storage duration, <a href="#6.2.4">6.2.4</a> strlen function, <a href="#7.21.6.3">7.21.6.3</a>
+ static storage-class specifier, <a href="#6.2.2">6.2.2</a>, <a href="#6.2.4">6.2.4</a>, <a href="#6.7.1">6.7.1</a> strncat function, <a href="#7.21.3.2">7.21.3.2</a>
+ static, in array declarators, <a href="#6.7.5.2">6.7.5.2</a>, <a href="#6.7.5.3">6.7.5.3</a> strncmp function, <a href="#7.21.4">7.21.4</a>, <a href="#7.21.4.4">7.21.4.4</a>
+ stdarg.h header, <a href="#4">4</a>, <a href="#6.7.5.3">6.7.5.3</a>, <a href="#7.15">7.15</a> strncpy function, <a href="#7.21.2.4">7.21.2.4</a>
+ stdbool.h header, <a href="#4">4</a>, <a href="#7.16">7.16</a>, <a href="#7.26.7">7.26.7</a>, <a href="#H">H</a> strpbrk function, <a href="#7.21.5.4">7.21.5.4</a>
+ STDC, <a href="#6.10.6">6.10.6</a>, <a href="#6.11.8">6.11.8</a> strrchr function, <a href="#7.21.5.5">7.21.5.5</a>
+ stddef.h header, <a href="#4">4</a>, <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.3.2.3">6.3.2.3</a>, <a href="#6.4.4.4">6.4.4.4</a>, strspn function, <a href="#7.21.5.6">7.21.5.6</a>
+ <a href="#6.4.5">6.4.5</a>, <a href="#6.5.3.4">6.5.3.4</a>, <a href="#6.5.6">6.5.6</a>, <a href="#7.17">7.17</a> strstr function, <a href="#7.21.5.7">7.21.5.7</a>
+ stderr macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.3">7.19.3</a> strtod function, <a href="#7.12.11.2">7.12.11.2</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20.1.3">7.20.1.3</a>,
+ stdin macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.6.4">7.19.6.4</a>, <a href="#7.24.2.2">7.24.2.2</a>, <a href="#F.3">F.3</a>
+ <a href="#7.19.7.6">7.19.7.6</a>, <a href="#7.19.7.7">7.19.7.7</a>, <a href="#7.24.2.12">7.24.2.12</a>, <a href="#7.24.3.7">7.24.3.7</a> strtof function, <a href="#7.12.11.2">7.12.11.2</a>, <a href="#7.20.1.3">7.20.1.3</a>, <a href="#F.3">F.3</a>
+ stdint.h header, <a href="#4">4</a>, <a href="#5.2.4.2">5.2.4.2</a>, <a href="#6.10.1">6.10.1</a>, <a href="#7.8">7.8</a>, <a href="#7.18">7.18</a>, strtoimax function, <a href="#7.8.2.3">7.8.2.3</a>
+ <a href="#7.26.8">7.26.8</a> strtok function, <a href="#7.21.5.8">7.21.5.8</a>
+ stdio.h header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19">7.19</a>, <a href="#7.26.9">7.26.9</a>, <a href="#F">F</a> strtol function, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20.1.2">7.20.1.2</a>,
+ stdlib.h header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.20">7.20</a>, <a href="#7.26.10">7.26.10</a>, <a href="#F">F</a> <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.2.2">7.24.2.2</a>
+ stdout macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.6.3">7.19.6.3</a>, strtold function, <a href="#7.12.11.2">7.12.11.2</a>, <a href="#7.20.1.3">7.20.1.3</a>, <a href="#F.3">F.3</a>
+ <a href="#7.19.7.9">7.19.7.9</a>, <a href="#7.19.7.10">7.19.7.10</a>, <a href="#7.24.2.11">7.24.2.11</a>, <a href="#7.24.3.9">7.24.3.9</a> strtoll function, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.20.1.2">7.20.1.2</a>, <a href="#7.20.1.4">7.20.1.4</a>
+ storage duration, <a href="#6.2.4">6.2.4</a> strtoul function, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20.1.2">7.20.1.2</a>,
+ storage order of array, <a href="#6.5.2.1">6.5.2.1</a> <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.2.2">7.24.2.2</a>
+ storage-class specifiers, <a href="#6.7.1">6.7.1</a>, <a href="#6.11.5">6.11.5</a> strtoull function, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.20.1.2">7.20.1.2</a>, <a href="#7.20.1.4">7.20.1.4</a>
+ strcat function, <a href="#7.21.3.1">7.21.3.1</a> strtoumax function, <a href="#7.8.2.3">7.8.2.3</a>
+ strchr function, <a href="#7.21.5.2">7.21.5.2</a> struct hack, see flexible array member
+ strcmp function, <a href="#7.21.4">7.21.4</a>, <a href="#7.21.4.2">7.21.4.2</a> structure
+ strcoll function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.21.4.3">7.21.4.3</a>, <a href="#7.21.4.5">7.21.4.5</a> arrow operator (->), <a href="#6.5.2.3">6.5.2.3</a>
+ strcpy function, <a href="#7.21.2.3">7.21.2.3</a> content, <a href="#6.7.2.3">6.7.2.3</a>
+ strcspn function, <a href="#7.21.5.3">7.21.5.3</a> dot operator (.), <a href="#6.5.2.3">6.5.2.3</a>
+ streams, <a href="#7.19.2">7.19.2</a>, <a href="#7.20.4.3">7.20.4.3</a> initialization, <a href="#6.7.8">6.7.8</a>
+ fully buffered, <a href="#7.19.3">7.19.3</a> member alignment, <a href="#6.7.2.1">6.7.2.1</a>
+ line buffered, <a href="#7.19.3">7.19.3</a> member name space, <a href="#6.2.3">6.2.3</a>
+ orientation, <a href="#7.19.2">7.19.2</a> member operator (.), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.3">6.5.2.3</a>
+ standard error, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a> pointer operator (->), <a href="#6.5.2.3">6.5.2.3</a>
+ standard input, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a> specifier, <a href="#6.7.2.1">6.7.2.1</a>
+ standard output, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.3">7.19.3</a> tag, <a href="#6.2.3">6.2.3</a>, <a href="#6.7.2.3">6.7.2.3</a>
+ unbuffered, <a href="#7.19.3">7.19.3</a> type, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2.1">6.7.2.1</a>
+ strerror function, <a href="#7.19.10.4">7.19.10.4</a>, <a href="#7.21.6.2">7.21.6.2</a> strxfrm function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.21.4.5">7.21.4.5</a>
+ strftime function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.23.3">7.23.3</a>, <a href="#7.23.3.5">7.23.3.5</a>, subscripting, <a href="#6.5.2.1">6.5.2.1</a>
+ <a href="#7.24.5.1">7.24.5.1</a> subtraction assignment operator (-=), <a href="#6.5.16.2">6.5.16.2</a>
+<!--page 550 -->
+ subtraction operator (-), <a href="#6.5.6">6.5.6</a>, <a href="#F.3">F.3</a>, <a href="#G.5.2">G.5.2</a> tolower function, <a href="#7.4.2.1">7.4.2.1</a>
+ suffix toupper function, <a href="#7.4.2.2">7.4.2.2</a>
+ floating constant, <a href="#6.4.4.2">6.4.4.2</a> towctrans function, <a href="#7.25.3.2.1">7.25.3.2.1</a>, <a href="#7.25.3.2.2">7.25.3.2.2</a>
+ integer constant, <a href="#6.4.4.1">6.4.4.1</a> towlower function, <a href="#7.25.3.1.1">7.25.3.1.1</a>, <a href="#7.25.3.2.1">7.25.3.2.1</a>
+ switch body, <a href="#6.8.4.2">6.8.4.2</a> towupper function, <a href="#7.25.3.1.2">7.25.3.1.2</a>, <a href="#7.25.3.2.1">7.25.3.2.1</a>
+ switch case label, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.4.2">6.8.4.2</a> translation environment, <a href="#5">5</a>, <a href="#5.1.1">5.1.1</a>
+ switch default label, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.4.2">6.8.4.2</a> translation limits, <a href="#5.2.4.1">5.2.4.1</a>
+ switch statement, <a href="#6.8.1">6.8.1</a>, <a href="#6.8.4.2">6.8.4.2</a> translation phases, <a href="#5.1.1.2">5.1.1.2</a>
+ swprintf function, <a href="#7.24.2.3">7.24.2.3</a>, <a href="#7.24.2.7">7.24.2.7</a> translation unit, <a href="#5.1.1.1">5.1.1.1</a>, <a href="#6.9">6.9</a>
+ swscanf function, <a href="#7.24.2.4">7.24.2.4</a>, <a href="#7.24.2.8">7.24.2.8</a> trap representation, <a href="#6.2.6.1">6.2.6.1</a>, <a href="#6.2.6.2">6.2.6.2</a>, <a href="#6.3.2.3">6.3.2.3</a>,
+ symbols, <a href="#3">3</a> <a href="#6.5.2.3">6.5.2.3</a>
+ syntactic categories, <a href="#6.1">6.1</a> trigonometric functions
+ syntax notation, <a href="#6.1">6.1</a> complex, <a href="#7.3.5">7.3.5</a>, <a href="#G.6.1">G.6.1</a>
+ syntax rule precedence, <a href="#5.1.1.2">5.1.1.2</a> real, <a href="#7.12.4">7.12.4</a>, <a href="#F.9.1">F.9.1</a>
+ syntax summary, language, <a href="#A">A</a> trigraph sequences, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#5.2.1.1">5.2.1.1</a>
+ system function, <a href="#7.20.4.6">7.20.4.6</a> true macro, <a href="#7.16">7.16</a>
+ trunc functions, <a href="#7.12.9.8">7.12.9.8</a>, <a href="#F.9.6.8">F.9.6.8</a>
+ tab characters, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a> trunc type-generic macro, <a href="#7.22">7.22</a>
+ tag compatibility, <a href="#6.2.7">6.2.7</a> truncation, <a href="#6.3.1.4">6.3.1.4</a>, <a href="#7.12.9.8">7.12.9.8</a>, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.5.3">7.19.5.3</a>
+ tag name space, <a href="#6.2.3">6.2.3</a> truncation toward zero, <a href="#6.5.5">6.5.5</a>
+ tags, <a href="#6.7.2.3">6.7.2.3</a> two's complement, <a href="#6.2.6.2">6.2.6.2</a>, <a href="#7.18.1.1">7.18.1.1</a>
+ tan functions, <a href="#7.12.4.7">7.12.4.7</a>, <a href="#F.9.1.7">F.9.1.7</a> type category, <a href="#6.2.5">6.2.5</a>
+ tan type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> type conversion, <a href="#6.3">6.3</a>
+ tanh functions, <a href="#7.12.5.6">7.12.5.6</a>, <a href="#F.9.2.6">F.9.2.6</a> type definitions, <a href="#6.7.7">6.7.7</a>
+ tanh type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> type domain, <a href="#6.2.5">6.2.5</a>, <a href="#G.2">G.2</a>
+ tentative definition, <a href="#6.9.2">6.9.2</a> type names, <a href="#6.7.6">6.7.6</a>
+ terms, <a href="#3">3</a> type punning, <a href="#6.5.2.3">6.5.2.3</a>
+ text streams, <a href="#7.19.2">7.19.2</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.19.9.2">7.19.9.2</a>, <a href="#7.19.9.4">7.19.9.4</a> type qualifiers, <a href="#6.7.3">6.7.3</a>
+ tgamma functions, <a href="#7.12.8.4">7.12.8.4</a>, <a href="#F.9.5.4">F.9.5.4</a> type specifiers, <a href="#6.7.2">6.7.2</a>
+ tgamma type-generic macro, <a href="#7.22">7.22</a> type-generic macro, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a>
+ tgmath.h header, <a href="#7.22">7.22</a>, <a href="#G.7">G.7</a> typedef declaration, <a href="#6.7.7">6.7.7</a>
+ time typedef storage-class specifier, <a href="#6.7.1">6.7.1</a>, <a href="#6.7.7">6.7.7</a>
+ broken down, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.3">7.23.2.3</a>, <a href="#7.23.3">7.23.3</a>, <a href="#7.23.3.1">7.23.3.1</a>, types, <a href="#6.2.5">6.2.5</a>
+ <a href="#7.23.3.3">7.23.3.3</a>, <a href="#7.23.3.4">7.23.3.4</a>, <a href="#7.23.3.5">7.23.3.5</a> character, <a href="#6.7.8">6.7.8</a>
+ calendar, <a href="#7.23.1">7.23.1</a>, <a href="#7.23.2.2">7.23.2.2</a>, <a href="#7.23.2.3">7.23.2.3</a>, <a href="#7.23.2.4">7.23.2.4</a>, compatible, <a href="#6.2.7">6.2.7</a>, <a href="#6.7.2">6.7.2</a>, <a href="#6.7.3">6.7.3</a>, <a href="#6.7.5">6.7.5</a>
+ <a href="#7.23.3.2">7.23.3.2</a>, <a href="#7.23.3.3">7.23.3.3</a>, <a href="#7.23.3.4">7.23.3.4</a> complex, <a href="#6.2.5">6.2.5</a>, <a href="#G">G</a>
+ components, <a href="#7.23.1">7.23.1</a> composite, <a href="#6.2.7">6.2.7</a>
+ conversion functions, <a href="#7.23.3">7.23.3</a> const qualified, <a href="#6.7.3">6.7.3</a>
+ wide character, <a href="#7.24.5">7.24.5</a> conversions, <a href="#6.3">6.3</a>
+ local, <a href="#7.23.1">7.23.1</a> imaginary, <a href="#G">G</a>
+ manipulation functions, <a href="#7.23.2">7.23.2</a> restrict qualified, <a href="#6.7.3">6.7.3</a>
+ time function, <a href="#7.23.2.4">7.23.2.4</a> volatile qualified, <a href="#6.7.3">6.7.3</a>
+ time.h header, <a href="#7.23">7.23</a>
+ time_t type, <a href="#7.23.1">7.23.1</a> UCHAR_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
+ tm structure type, <a href="#7.23.1">7.23.1</a>, <a href="#7.24.1">7.24.1</a> UINT_FASTN_MAX macros, <a href="#7.18.2.3">7.18.2.3</a>
+ TMP_MAX macro, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.4.3">7.19.4.3</a>, <a href="#7.19.4.4">7.19.4.4</a> uint_fastN_t types, <a href="#7.18.1.3">7.18.1.3</a>
+ tmpfile function, <a href="#7.19.4.3">7.19.4.3</a>, <a href="#7.20.4.3">7.20.4.3</a> UINT_LEASTN_MAX macros, <a href="#7.18.2.2">7.18.2.2</a>
+ tmpnam function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.4.3">7.19.4.3</a>, <a href="#7.19.4.4">7.19.4.4</a> uint_leastN_t types, <a href="#7.18.1.2">7.18.1.2</a>
+ token, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.4">6.4</a>, see also preprocessing tokens UINT_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
+ token concatenation, <a href="#6.10.3.3">6.10.3.3</a> UINTMAX_C macro, <a href="#7.18.4.2">7.18.4.2</a>
+ token pasting, <a href="#6.10.3.3">6.10.3.3</a> UINTMAX_MAX macro, <a href="#7.8.2.3">7.8.2.3</a>, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.18.2.5">7.18.2.5</a>
+<!--page 551 -->
+ uintmax_t type, <a href="#7.18.1.5">7.18.1.5</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, USHRT_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>
+ <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> usual arithmetic conversions, <a href="#6.3.1.8">6.3.1.8</a>, <a href="#6.5.5">6.5.5</a>, <a href="#6.5.6">6.5.6</a>,
+ UINTN_C macros, <a href="#7.18.4.1">7.18.4.1</a> <a href="#6.5.8">6.5.8</a>, <a href="#6.5.9">6.5.9</a>, <a href="#6.5.10">6.5.10</a>, <a href="#6.5.11">6.5.11</a>, <a href="#6.5.12">6.5.12</a>, <a href="#6.5.15">6.5.15</a>
+ UINTN_MAX macros, <a href="#7.18.2.1">7.18.2.1</a> utilities, general, <a href="#7.20">7.20</a>
+ uintN_t types, <a href="#7.18.1.1">7.18.1.1</a> wide string, <a href="#7.24.4">7.24.4</a>
+ UINTPTR_MAX macro, <a href="#7.18.2.4">7.18.2.4</a>
+ uintptr_t type, <a href="#7.18.1.4">7.18.1.4</a> va_arg macro, <a href="#7.15">7.15</a>, <a href="#7.15.1">7.15.1</a>, <a href="#7.15.1.1">7.15.1.1</a>, <a href="#7.15.1.2">7.15.1.2</a>,
+ ULLONG_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.15.1.4">7.15.1.4</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.9">7.19.6.9</a>, <a href="#7.19.6.10">7.19.6.10</a>,
+ <a href="#7.24.4.1.2">7.24.4.1.2</a> <a href="#7.19.6.11">7.19.6.11</a>, <a href="#7.19.6.12">7.19.6.12</a>, <a href="#7.19.6.13">7.19.6.13</a>, <a href="#7.19.6.14">7.19.6.14</a>,
+ ULONG_MAX macro, <a href="#5.2.4.2.1">5.2.4.2.1</a>, <a href="#7.20.1.4">7.20.1.4</a>, <a href="#7.24.2.5">7.24.2.5</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.7">7.24.2.7</a>, <a href="#7.24.2.8">7.24.2.8</a>,
+ <a href="#7.24.4.1.2">7.24.4.1.2</a> <a href="#7.24.2.9">7.24.2.9</a>, <a href="#7.24.2.10">7.24.2.10</a>
+ unary arithmetic operators, <a href="#6.5.3.3">6.5.3.3</a> va_copy macro, <a href="#7.15">7.15</a>, <a href="#7.15.1">7.15.1</a>, <a href="#7.15.1.1">7.15.1.1</a>, <a href="#7.15.1.2">7.15.1.2</a>,
+ unary expression, <a href="#6.5.3">6.5.3</a> <a href="#7.15.1.3">7.15.1.3</a>
+ unary minus operator (-), <a href="#6.5.3.3">6.5.3.3</a>, <a href="#F.3">F.3</a> va_end macro, <a href="#7.1.3">7.1.3</a>, <a href="#7.15">7.15</a>, <a href="#7.15.1">7.15.1</a>, <a href="#7.15.1.3">7.15.1.3</a>,
+ unary operators, <a href="#6.5.3">6.5.3</a> <a href="#7.15.1.4">7.15.1.4</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.9">7.19.6.9</a>, <a href="#7.19.6.10">7.19.6.10</a>,
+ unary plus operator (+), <a href="#6.5.3.3">6.5.3.3</a> <a href="#7.19.6.11">7.19.6.11</a>, <a href="#7.19.6.12">7.19.6.12</a>, <a href="#7.19.6.13">7.19.6.13</a>, <a href="#7.19.6.14">7.19.6.14</a>,
+ unbuffered stream, <a href="#7.19.3">7.19.3</a> <a href="#7.24.2.5">7.24.2.5</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.2.7">7.24.2.7</a>, <a href="#7.24.2.8">7.24.2.8</a>,
+ undef preprocessing directive, <a href="#6.10.3.5">6.10.3.5</a>, <a href="#7.1.3">7.1.3</a>, <a href="#7.24.2.9">7.24.2.9</a>, <a href="#7.24.2.10">7.24.2.10</a>
+ <a href="#7.1.4">7.1.4</a> va_list type, <a href="#7.15">7.15</a>, <a href="#7.15.1.3">7.15.1.3</a>
+ undefined behavior, <a href="#3.4.3">3.4.3</a>, <a href="#4">4</a>, <a href="#J.2">J.2</a> va_start macro, <a href="#7.15">7.15</a>, <a href="#7.15.1">7.15.1</a>, <a href="#7.15.1.1">7.15.1.1</a>,
+ underscore character, <a href="#6.4.2.1">6.4.2.1</a> <a href="#7.15.1.2">7.15.1.2</a>, <a href="#7.15.1.3">7.15.1.3</a>, <a href="#7.15.1.4">7.15.1.4</a>, <a href="#7.19.6.8">7.19.6.8</a>,
+ underscore, leading, in identifier, <a href="#7.1.3">7.1.3</a> <a href="#7.19.6.9">7.19.6.9</a>, <a href="#7.19.6.10">7.19.6.10</a>, <a href="#7.19.6.11">7.19.6.11</a>, <a href="#7.19.6.12">7.19.6.12</a>,
+ ungetc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.7.11">7.19.7.11</a>, <a href="#7.19.9.2">7.19.9.2</a>, <a href="#7.19.6.13">7.19.6.13</a>, <a href="#7.19.6.14">7.19.6.14</a>, <a href="#7.24.2.5">7.24.2.5</a>, <a href="#7.24.2.6">7.24.2.6</a>,
+ <a href="#7.19.9.3">7.19.9.3</a> <a href="#7.24.2.7">7.24.2.7</a>, <a href="#7.24.2.8">7.24.2.8</a>, <a href="#7.24.2.9">7.24.2.9</a>, <a href="#7.24.2.10">7.24.2.10</a>
+ ungetwc function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3.10">7.24.3.10</a> value, <a href="#3.17">3.17</a>
+ Unicode required set, <a href="#6.10.8">6.10.8</a> value bits, <a href="#6.2.6.2">6.2.6.2</a>
+ union variable arguments, <a href="#6.10.3">6.10.3</a>, <a href="#7.15">7.15</a>
+ arrow operator (->), <a href="#6.5.2.3">6.5.2.3</a> variable arguments header, <a href="#7.15">7.15</a>
+ content, <a href="#6.7.2.3">6.7.2.3</a> variable length array, <a href="#6.7.5">6.7.5</a>, <a href="#6.7.5.2">6.7.5.2</a>
+ dot operator (.), <a href="#6.5.2.3">6.5.2.3</a> variably modified type, <a href="#6.7.5">6.7.5</a>, <a href="#6.7.5.2">6.7.5.2</a>
+ initialization, <a href="#6.7.8">6.7.8</a> vertical-tab character, <a href="#5.2.1">5.2.1</a>, <a href="#6.4">6.4</a>
+ member alignment, <a href="#6.7.2.1">6.7.2.1</a> vertical-tab escape sequence (\v), <a href="#5.2.2">5.2.2</a>, <a href="#6.4.4.4">6.4.4.4</a>,
+ member name space, <a href="#6.2.3">6.2.3</a> <a href="#7.4.1.10">7.4.1.10</a>
+ member operator (.), <a href="#6.3.2.1">6.3.2.1</a>, <a href="#6.5.2.3">6.5.2.3</a> vfprintf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.8">7.19.6.8</a>
+ pointer operator (->), <a href="#6.5.2.3">6.5.2.3</a> vfscanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.9">7.19.6.9</a>
+ specifier, <a href="#6.7.2.1">6.7.2.1</a> vfwprintf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.5">7.24.2.5</a>
+ tag, <a href="#6.2.3">6.2.3</a>, <a href="#6.7.2.3">6.7.2.3</a> vfwscanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.6">7.24.2.6</a>, <a href="#7.24.3.10">7.24.3.10</a>
+ type, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2.1">6.7.2.1</a> visibility of identifier, <a href="#6.2.1">6.2.1</a>
+ universal character name, <a href="#6.4.3">6.4.3</a> VLA, see variable length array
+ unqualified type, <a href="#6.2.5">6.2.5</a> void expression, <a href="#6.3.2.2">6.3.2.2</a>
+ unqualified version of type, <a href="#6.2.5">6.2.5</a> void function parameter, <a href="#6.7.5.3">6.7.5.3</a>
+ unsigned integer suffix, u or <a href="#U">U</a>, <a href="#6.4.4.1">6.4.4.1</a> void type, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.2.2">6.3.2.2</a>, <a href="#6.7.2">6.7.2</a>
+ unsigned integer types, <a href="#6.2.5">6.2.5</a>, <a href="#6.3.1.3">6.3.1.3</a>, <a href="#6.4.4.1">6.4.4.1</a> void type conversion, <a href="#6.3.2.2">6.3.2.2</a>
+ unsigned type conversion, <a href="#6.3.1.1">6.3.1.1</a>, <a href="#6.3.1.3">6.3.1.3</a>, volatile storage, <a href="#5.1.2.3">5.1.2.3</a>
+ <a href="#6.3.1.4">6.3.1.4</a>, <a href="#6.3.1.8">6.3.1.8</a> volatile type qualifier, <a href="#6.7.3">6.7.3</a>
+ unsigned types, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.2">6.7.2</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, volatile-qualified type, <a href="#6.2.5">6.2.5</a>, <a href="#6.7.3">6.7.3</a>
+ <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> vprintf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.10">7.19.6.10</a>
+ unspecified behavior, <a href="#3.4.4">3.4.4</a>, <a href="#4">4</a>, <a href="#J.1">J.1</a> vscanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.11">7.19.6.11</a>
+ unspecified value, <a href="#3.17.3">3.17.3</a> vsnprintf function, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.12">7.19.6.12</a>
+ uppercase letter, <a href="#5.2.1">5.2.1</a> vsprintf function, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.13">7.19.6.13</a>
+ use of library functions, <a href="#7.1.4">7.1.4</a> vsscanf function, <a href="#7.19.6.8">7.19.6.8</a>, <a href="#7.19.6.14">7.19.6.14</a>
+<!--page 552 -->
+ vswprintf function, <a href="#7.24.2.7">7.24.2.7</a> wctype.h header, <a href="#7.25">7.25</a>, <a href="#7.26.13">7.26.13</a>
+ vswscanf function, <a href="#7.24.2.8">7.24.2.8</a> wctype_t type, <a href="#7.25.1">7.25.1</a>, <a href="#7.25.2.2.2">7.25.2.2.2</a>
+ vwprintf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.9">7.24.2.9</a> WEOF macro, <a href="#7.24.1">7.24.1</a>, <a href="#7.24.3.1">7.24.3.1</a>, <a href="#7.24.3.3">7.24.3.3</a>, <a href="#7.24.3.6">7.24.3.6</a>,
+ vwscanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.10">7.24.2.10</a>, <a href="#7.24.3.10">7.24.3.10</a> <a href="#7.24.3.7">7.24.3.7</a>, <a href="#7.24.3.8">7.24.3.8</a>, <a href="#7.24.3.9">7.24.3.9</a>, <a href="#7.24.3.10">7.24.3.10</a>,
+ <a href="#7.24.6.1.1">7.24.6.1.1</a>, <a href="#7.25.1">7.25.1</a>
+ warnings, <a href="#I">I</a> while statement, <a href="#6.8.5.1">6.8.5.1</a>
+ wchar.h header, <a href="#5.2.4.2.2">5.2.4.2.2</a>, <a href="#7.19.1">7.19.1</a>, <a href="#7.24">7.24</a>, <a href="#7.26.12">7.26.12</a>, white space, <a href="#5.1.1.2">5.1.1.2</a>, <a href="#6.4">6.4</a>, <a href="#6.10">6.10</a>, <a href="#7.4.1.10">7.4.1.10</a>,
+ <a href="#F">F</a> <a href="#7.25.2.1.10">7.25.2.1.10</a>
+ WCHAR_MAX macro, <a href="#7.18.3">7.18.3</a>, <a href="#7.24.1">7.24.1</a> white-space characters, <a href="#6.4">6.4</a>
+ WCHAR_MIN macro, <a href="#7.18.3">7.18.3</a>, <a href="#7.24.1">7.24.1</a> wide character, <a href="#3.7.3">3.7.3</a>
+ wchar_t type, <a href="#3.7.3">3.7.3</a>, <a href="#6.4.4.4">6.4.4.4</a>, <a href="#6.4.5">6.4.5</a>, <a href="#6.7.8">6.7.8</a>, case mapping functions, <a href="#7.25.3.1">7.25.3.1</a>
+ <a href="#6.10.8">6.10.8</a>, <a href="#7.17">7.17</a>, <a href="#7.18.3">7.18.3</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.20">7.20</a>, extensible, <a href="#7.25.3.2">7.25.3.2</a>
+ <a href="#7.24.1">7.24.1</a>, <a href="#7.24.2.1">7.24.2.1</a>, <a href="#7.24.2.2">7.24.2.2</a> classification functions, <a href="#7.25.2.1">7.25.2.1</a>
+ wcrtomb function, <a href="#7.19.3">7.19.3</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>, extensible, <a href="#7.25.2.2">7.25.2.2</a>
+ <a href="#7.24.6.3.3">7.24.6.3.3</a>, <a href="#7.24.6.4.2">7.24.6.4.2</a> constant, <a href="#6.4.4.4">6.4.4.4</a>
+ wcscat function, <a href="#7.24.4.3.1">7.24.4.3.1</a> formatted input/output functions, <a href="#7.24.2">7.24.2</a>
+ wcschr function, <a href="#7.24.4.5.1">7.24.4.5.1</a> input functions, <a href="#7.19.1">7.19.1</a>
+ wcscmp function, <a href="#7.24.4.4.1">7.24.4.4.1</a>, <a href="#7.24.4.4.4">7.24.4.4.4</a> input/output functions, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.3">7.24.3</a>
+ wcscoll function, <a href="#7.24.4.4.2">7.24.4.4.2</a>, <a href="#7.24.4.4.4">7.24.4.4.4</a> output functions, <a href="#7.19.1">7.19.1</a>
+ wcscpy function, <a href="#7.24.4.2.1">7.24.4.2.1</a> single-byte conversion functions, <a href="#7.24.6.1">7.24.6.1</a>
+ wcscspn function, <a href="#7.24.4.5.2">7.24.4.5.2</a> wide string, <a href="#7.1.1">7.1.1</a>
+ wcsftime function, <a href="#7.11.1.1">7.11.1.1</a>, <a href="#7.24.5.1">7.24.5.1</a> wide string comparison functions, <a href="#7.24.4.4">7.24.4.4</a>
+ wcslen function, <a href="#7.24.4.6.1">7.24.4.6.1</a> wide string concatenation functions, <a href="#7.24.4.3">7.24.4.3</a>
+ wcsncat function, <a href="#7.24.4.3.2">7.24.4.3.2</a> wide string copying functions, <a href="#7.24.4.2">7.24.4.2</a>
+ wcsncmp function, <a href="#7.24.4.4.3">7.24.4.4.3</a> wide string literal, see string literal
+ wcsncpy function, <a href="#7.24.4.2.2">7.24.4.2.2</a> wide string miscellaneous functions, <a href="#7.24.4.6">7.24.4.6</a>
+ wcspbrk function, <a href="#7.24.4.5.3">7.24.4.5.3</a> wide string numeric conversion functions, <a href="#7.8.2.4">7.8.2.4</a>,
+ wcsrchr function, <a href="#7.24.4.5.4">7.24.4.5.4</a> <a href="#7.24.4.1">7.24.4.1</a>
+ wcsrtombs function, <a href="#7.24.6.4.2">7.24.6.4.2</a> wide string search functions, <a href="#7.24.4.5">7.24.4.5</a>
+ wcsspn function, <a href="#7.24.4.5.5">7.24.4.5.5</a> wide-oriented stream, <a href="#7.19.2">7.19.2</a>
+ wcsstr function, <a href="#7.24.4.5.6">7.24.4.5.6</a> width, <a href="#6.2.6.2">6.2.6.2</a>
+ wcstod function, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a> WINT_MAX macro, <a href="#7.18.3">7.18.3</a>
+ wcstod function, <a href="#7.24.4.1.1">7.24.4.1.1</a> WINT_MIN macro, <a href="#7.18.3">7.18.3</a>
+ wcstof function, <a href="#7.24.4.1.1">7.24.4.1.1</a> wint_t type, <a href="#7.18.3">7.18.3</a>, <a href="#7.19.6.1">7.19.6.1</a>, <a href="#7.24.1">7.24.1</a>, <a href="#7.24.2.1">7.24.2.1</a>,
+ wcstoimax function, <a href="#7.8.2.4">7.8.2.4</a> <a href="#7.25.1">7.25.1</a>
+ wcstok function, <a href="#7.24.4.5.7">7.24.4.5.7</a> wmemchr function, <a href="#7.24.4.5.8">7.24.4.5.8</a>
+ wcstol function, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>, wmemcmp function, <a href="#7.24.4.4.5">7.24.4.4.5</a>
+ <a href="#7.24.4.1.2">7.24.4.1.2</a> wmemcpy function, <a href="#7.24.4.2.3">7.24.4.2.3</a>
+ wcstold function, <a href="#7.24.4.1.1">7.24.4.1.1</a> wmemmove function, <a href="#7.24.4.2.4">7.24.4.2.4</a>
+ wcstoll function, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a> wmemset function, <a href="#7.24.4.6.2">7.24.4.6.2</a>
+ wcstombs function, <a href="#7.20.8.2">7.20.8.2</a>, <a href="#7.24.6.4">7.24.6.4</a> wprintf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.9">7.24.2.9</a>, <a href="#7.24.2.11">7.24.2.11</a>
+ wcstoul function, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.19.6.2">7.19.6.2</a>, <a href="#7.24.2.2">7.24.2.2</a>, wscanf function, <a href="#7.19.1">7.19.1</a>, <a href="#7.24.2.10">7.24.2.10</a>, <a href="#7.24.2.12">7.24.2.12</a>,
+ <a href="#7.24.4.1.2">7.24.4.1.2</a> <a href="#7.24.3.10">7.24.3.10</a>
+ wcstoull function, <a href="#7.8.2.4">7.8.2.4</a>, <a href="#7.24.4.1.2">7.24.4.1.2</a>
+ wcstoumax function, <a href="#7.8.2.4">7.8.2.4</a> xor macro, <a href="#7.9">7.9</a>
+ wcsxfrm function, <a href="#7.24.4.4.4">7.24.4.4.4</a> xor_eq macro, <a href="#7.9">7.9</a>
+ wctob function, <a href="#7.24.6.1.2">7.24.6.1.2</a>, <a href="#7.25.2.1">7.25.2.1</a>
+ wctomb function, <a href="#7.20.7.3">7.20.7.3</a>, <a href="#7.20.8.2">7.20.8.2</a>, <a href="#7.24.6.3">7.24.6.3</a>
+ wctrans function, <a href="#7.25.3.2.1">7.25.3.2.1</a>, <a href="#7.25.3.2.2">7.25.3.2.2</a>
+ wctrans_t type, <a href="#7.25.1">7.25.1</a>, <a href="#7.25.3.2.2">7.25.3.2.2</a>
+ wctype function, <a href="#7.25.2.2.1">7.25.2.2.1</a>, <a href="#7.25.2.2.2">7.25.2.2.2</a>
+</pre>
+</body></html>