<a href="#6.4.9"> 6.4.9 Comments . . . . . . . . . . . . . . . . . . . . . 66</a>
<a href="#6.5"> 6.5 Expressions . . . . . . . . . . . . . . . . . . . . . . . . 67</a>
-
[page iii]
<a href="#6.5.1"> 6.5.1 Primary expressions . . . . . . . . . . . . . . . . . 69</a>
<a href="#Bibliography">Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 516</a>
<a href="#Index">Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519</a>
-
-
-
[<a name="pix" href="#pix">page ix</a>] (<a href="#Contents">Contents</a>)
-
[<a name="px" href="#px">page x</a>] (<a href="#Contents">Contents</a>)
<a name="Foreword" href="#Foreword"><b> Foreword</b></a>
-- type-generic math macros in <a href="#7.22"><tgmath.h></a>
-- the long long int type and library functions
-
[<a name="pxi" href="#pxi">page xi</a>] (<a href="#Contents">Contents</a>)
-- increased minimum translation limits
-- idempotent type qualifiers
-- empty macro arguments
-
[<a name="pxii" href="#pxii">page xii</a>] (<a href="#Contents">Contents</a>)
-- new structure type compatibility rules (tag compatibility)
ISO/IEC Directives, this foreword, the introduction, notes, footnotes, and examples are
also for information only.
-
-
-
[<a name="pxiii" href="#pxiii">page xiii</a>] (<a href="#Contents">Contents</a>)
<a name="Introduction" href="#Introduction"><b> Introduction</b></a>
5 The language clause (clause 6) is derived from ''The C Reference Manual''.
6 The library clause (clause 7) is based on the 1984 /usr/group Standard.
-
-
-
[<a name="pxiv" href="#pxiv">page xiv</a>] (<a href="#Contents">Contents</a>)
8 IEC 60559:1989, Binary floating-point arithmetic for microprocessor systems (previously
designated IEC 559:1989).
-
-
-
[<a name="p2" href="#p2">page 2</a>] (<a href="#Contents">Contents</a>)
behavior that depends on local conventions of nationality, culture, and language that each
implementation documents
-
[<a name="p3" href="#p3">page 3</a>] (<a href="#Contents">Contents</a>)
2 EXAMPLE An example of locale-specific behavior is whether the islower function returns true for
1 character
single-byte character
<C> bit representation that fits in a byte
+
[<a name="p4" href="#p4">page 4</a>] (<a href="#Contents">Contents</a>)
<a name="3.7.2" href="#3.7.2"><b> 3.7.2</b></a>
floor of x: the greatest integer less than or equal to x
2 EXAMPLE ???2.4??? is 2, ???-2.4??? is -3.
-
-
-
[<a name="p6" href="#p6">page 6</a>] (<a href="#Contents">Contents</a>)
that the result would be the same as if it were executed using double-precision arithmetic (for example, if d
were replaced by the constant 2.0, which has type double).
-
-
-
[<a name="p14" href="#p14">page 14</a>] (<a href="#Contents">Contents</a>)
12 EXAMPLE 4 Implementations employing wide registers have to take care to honor appropriate
above expression statement can be rewritten by the implementation in any of the above ways because the
same result will occur.
-
-
-
[<a name="p15" href="#p15">page 15</a>] (<a href="#Contents">Contents</a>)
15 EXAMPLE 7 The grouping of an expression does not completely determine its evaluation. In the
Forward references: expressions (<a href="#6.5">6.5</a>), type qualifiers (<a href="#6.7.3">6.7.3</a>), statements (<a href="#6.8">6.8</a>), the
signal function (<a href="#7.14">7.14</a>), files (<a href="#7.19.3">7.19.3</a>).
-
-
-
[<a name="p16" href="#p16">page 16</a>] (<a href="#Contents">Contents</a>)
<a name="5.2" href="#5.2"><b> 5.2 Environmental considerations</b></a>
tabulation position, the behavior of the display device is unspecified.
\v (vertical tab) Moves the active position to the initial position of the next vertical
tabulation position. If the active position is at or past the last defined vertical
+
[<a name="p19" href="#p19">page 19</a>] (<a href="#Contents">Contents</a>)
tabulation position, the behavior of the display device is unspecified.
-- maximum value for an object of type unsigned long int
ULONG_MAX 4294967295 // 232 - 1
-
[<a name="p22" href="#p22">page 22</a>] (<a href="#Contents">Contents</a>)
-- minimum value for an object of type long long int
implementation-defined (positive) values that are less than or equal to those shown:
-- the difference between 1 and the least value greater than 1 that is representable in the
given floating point type, b1- p
+
[<a name="p26" href="#p26">page 26</a>] (<a href="#Contents">Contents</a>)
FLT_EPSILON 1E-5
(<a href="#7.24">7.24</a>), floating-point environment <a href="#7.6"><fenv.h></a> (<a href="#7.6">7.6</a>), general utilities <a href="#7.20"><stdlib.h></a>
(<a href="#7.20">7.20</a>), input/output <a href="#7.19"><stdio.h></a> (<a href="#7.19">7.19</a>), mathematics <a href="#7.12"><math.h></a> (<a href="#7.12">7.12</a>).
-
-
-
[<a name="p28" href="#p28">page 28</a>] (<a href="#Contents">Contents</a>)
declares the identifier appears inside a block or within the list of parameter declarations in
a function definition, the identifier has block scope, which terminates at the end of the
associated block. If the declarator or type specifier that declares the identifier appears
+
[<a name="p29" href="#p29">page 29</a>] (<a href="#Contents">Contents</a>)
within the list of parameter declarations in a function prototype (not part of a function
The resulting composite type for the function is:
int f(int (*)(char *), double (*)[3]);
-
-
-
[<a name="p41" href="#p41">page 41</a>] (<a href="#Contents">Contents</a>)
<a name="6.3" href="#6.3"><b> 6.3 Conversions</b></a>
Forward references: cast operators (<a href="#6.5.4">6.5.4</a>), equality operators (<a href="#6.5.9">6.5.9</a>), integer types
capable of holding object pointers (<a href="#7.18.1.4">7.18.1.4</a>), simple assignment (<a href="#6.5.16.1">6.5.16.1</a>).
-
-
-
[<a name="p48" href="#p48">page 48</a>] (<a href="#Contents">Contents</a>)
<a name="6.4" href="#6.4"><b> 6.4 Lexical elements</b></a>
octal-digit: one of
0 1 2 3 4 5 6 7
-
-
-
[<a name="p54" href="#p54">page 54</a>] (<a href="#Contents">Contents</a>)
hexadecimal-digit: one of
5 The type of an integer constant is the first of the corresponding list in which its value can
be represented.
-
-
-
[<a name="p55" href="#p55">page 55</a>] (<a href="#Contents">Contents</a>)
Octal or Hexadecimal
may be signed or unsigned. If an integer constant cannot be represented by any type in
its list and has no extended integer type, then the integer constant has no type.
-
-
-
[<a name="p56" href="#p56">page 56</a>] (<a href="#Contents">Contents</a>)
<a name="6.4.4.2" href="#6.4.4.2"><b> 6.4.4.2 Floating constants</b></a>
\x hexadecimal-digit
hexadecimal-escape-sequence hexadecimal-digit
-
-
[<a name="p59" href="#p59">page 59</a>] (<a href="#Contents">Contents</a>)
<b> Description</b>
Forward references: common definitions <a href="#7.17"><stddef.h></a> (<a href="#7.17">7.17</a>), the mbtowc function
(<a href="#7.20.7.2">7.20.7.2</a>).
-
-
-
[<a name="p61" href="#p61">page 61</a>] (<a href="#Contents">Contents</a>)
<a name="6.4.5" href="#6.4.5"><b> 6.4.5 String literals</b></a>
in which case it is known as an operator (other forms of operator also exist in some
contexts). An operand is an entity on which an operator acts.
-
-
-
[<a name="p63" href="#p63">page 63</a>] (<a href="#Contents">Contents</a>)
3 In all aspects of the language, the six tokens<sup><a href="#note67"><b>67)</b></a></sup>
Forward references: additive operators (<a href="#6.5.6">6.5.6</a>), address and indirection operators
(<a href="#6.5.3.2">6.5.3.2</a>), array declarators (<a href="#6.7.5.2">6.7.5.2</a>).
-
-
-
[<a name="p70" href="#p70">page 70</a>] (<a href="#Contents">Contents</a>)
<a name="6.5.2.2" href="#6.5.2.2"><b> 6.5.2.2 Function calls</b></a>
structure'' or ''pointer to qualified or unqualified union'', and the second operand shall
name a member of the type pointed to.
-
-
-
[<a name="p72" href="#p72">page 72</a>] (<a href="#Contents">Contents</a>)
<b> Semantics</b>
Forward references: address and indirection operators (<a href="#6.5.3.2">6.5.3.2</a>), structure and union
specifiers (<a href="#6.7.2.1">6.7.2.1</a>).
-
-
-
[<a name="p74" href="#p74">page 74</a>] (<a href="#Contents">Contents</a>)
<a name="6.5.2.4" href="#6.5.2.4"><b> 6.5.2.4 Postfix increment and decrement operators</b></a>
Forward references: type names (<a href="#6.7.6">6.7.6</a>), initialization (<a href="#6.7.8">6.7.8</a>).
-
-
-
[<a name="p77" href="#p77">page 77</a>] (<a href="#Contents">Contents</a>)
<a name="6.5.3" href="#6.5.3"><b> 6.5.3 Unary operators</b></a>
object of type ptrdiff_t. Moreover, if the expression P points either to an element of
an array object or one past the last element of an array object, and the expression Q points
to the last element of the same array object, the expression ((Q)+1)-(P) has the same
+
[<a name="p83" href="#p83">page 83</a>] (<a href="#Contents">Contents</a>)
value as ((Q)-(P))+1 and as -((P)-((Q)+1)), and has the value zero if the
the result is set if and only if at least one of the corresponding bits in the converted
operands is set).
-
-
-
[<a name="p88" href="#p88">page 88</a>] (<a href="#Contents">Contents</a>)
<a name="6.5.13" href="#6.5.13"><b> 6.5.13 Logical AND operator</b></a>
a sequence point after the evaluation of the first operand. If the first operand compares
unequal to 0, the second operand is not evaluated.
-
-
-
[<a name="p89" href="#p89">page 89</a>] (<a href="#Contents">Contents</a>)
<a name="6.5.15" href="#6.5.15"><b> 6.5.15 Conditional operator</b></a>
the result of an assignment operator or to access it after the next sequence point, the
behavior is undefined.
-
[<a name="p91" href="#p91">page 91</a>] (<a href="#Contents">Contents</a>)
<a name="6.5.16.1" href="#6.5.16.1"><b> 6.5.16.1 Simple assignment</b></a>
3 A compound assignment of the form E1 op = E2 differs from the simple assignment
expression E1 = E1 op (E2) only in that the lvalue E1 is evaluated only once.
-
-
-
[<a name="p93" href="#p93">page 93</a>] (<a href="#Contents">Contents</a>)
<a name="6.5.17" href="#6.5.17"><b> 6.5.17 Comma operator</b></a>
-- unsigned short, or unsigned short int
-- int, signed, or signed int
-
[<a name="p99" href="#p99">page 99</a>] (<a href="#Contents">Contents</a>)
-- unsigned, or unsigned int
4 A bit-field shall have a type that is a qualified or unqualified version of _Bool, signed
int, unsigned int, or some other implementation-defined type.
-
[<a name="p101" href="#p101">page 101</a>] (<a href="#Contents">Contents</a>)
<b> Semantics</b>
not be the same).
18 Following the above declaration:
-
-
-
[<a name="p103" href="#p103">page 103</a>] (<a href="#Contents">Contents</a>)
struct s t1 = { 0 }; // valid
function call and an equivalent nested block. With one exception, only ''outer-to-inner'' assignments
between restricted pointers declared in nested blocks have defined behavior.
-
-
-
[<a name="p111" href="#p111">page 111</a>] (<a href="#Contents">Contents</a>)
{
implementation-defined.<sup><a href="#note121"><b>121)</b></a></sup>
6 Any function with internal linkage can be an inline function. For a function with external
linkage, the following restrictions apply: If a function is declared with an inline
+
[<a name="p112" href="#p112">page 112</a>] (<a href="#Contents">Contents</a>)
function specifier, then it shall also be defined in the same translation unit. If all of the
scope, storage duration, and type indicated by the declaration specifiers.
3 A full declarator is a declarator that is not part of another declarator. The end of a full
declarator is a sequence point. If, in the nested sequence of declarators in a full
+
[<a name="p114" href="#p114">page 114</a>] (<a href="#Contents">Contents</a>)
declarator, there is a declarator specifying a variable length array type, the type specified
3 EXAMPLE The following pair of declarations demonstrates the difference between a ''variable pointer
to a constant value'' and a ''constant pointer to a variable value''.
-
-
-
[<a name="p115" href="#p115">page 115</a>] (<a href="#Contents">Contents</a>)
const int *ptr_to_constant;
The pointer returned by fpfi points to a function that has one int parameter and accepts zero or more
additional arguments of any type.
-
-
-
[<a name="p120" href="#p120">page 120</a>] (<a href="#Contents">Contents</a>)
20 EXAMPLE 4 The following prototype has a variably modified parameter.
Forward references: function definitions (<a href="#6.9.1">6.9.1</a>), type names (<a href="#6.7.6">6.7.6</a>).
-
-
-
[<a name="p121" href="#p121">page 121</a>] (<a href="#Contents">Contents</a>)
<a name="6.7.6" href="#6.7.6"><b> 6.7.6 Type names</b></a>
type t1 and the type pointed to by tp1 are compatible. Type t1 is also compatible with type struct
s1, but not compatible with the types struct s2, t2, the type pointed to by tp2, or int.
-
-
-
[<a name="p123" href="#p123">page 123</a>] (<a href="#Contents">Contents</a>)
6 EXAMPLE 3 The following obscure constructions
a[i-1] = b[i];
}
-
-
-
[<a name="p124" href="#p124">page 124</a>] (<a href="#Contents">Contents</a>)
<a name="6.7.8" href="#6.7.8"><b> 6.7.8 Initialization</b></a>
. identifier
then the current object (defined below) shall have structure or union type and the
identifier shall be the name of a member of that type.
+
[<a name="p125" href="#p125">page 125</a>] (<a href="#Contents">Contents</a>)
<b> Semantics</b>
17 Each brace-enclosed initializer list has an associated current object. When no
designations are present, subobjects of the current object are initialized in order according
to the type of the current object: array elements in increasing subscript order, structure
+
[<a name="p126" href="#p126">page 126</a>] (<a href="#Contents">Contents</a>)
members in declaration order, and the first named member of a union.<sup><a href="#note129"><b>129)</b></a></sup> In contrast, a
int a[] = { 1, 2 }, b[] = { 3, 4, 5 };
due to the rules for incomplete types.
-
-
[<a name="p129" href="#p129">page 129</a>] (<a href="#Contents">Contents</a>)
32 EXAMPLE 8 The declaration
Forward references: common definitions <a href="#7.17"><stddef.h></a> (<a href="#7.17">7.17</a>).
-
-
-
[<a name="p130" href="#p130">page 130</a>] (<a href="#Contents">Contents</a>)
<a name="6.8" href="#6.8"><b> 6.8 Statements and blocks</b></a>
2 A case or default label shall appear only in a switch statement. Further
constraints on such labels are discussed under the switch statement.
-
[<a name="p131" href="#p131">page 131</a>] (<a href="#Contents">Contents</a>)
3 Label names shall be unique within a function.
/* ... */
}
-
-
-
[<a name="p137" href="#p137">page 137</a>] (<a href="#Contents">Contents</a>)
4 EXAMPLE 2 A goto statement is not allowed to jump past any declarations of objects with variably
int (*fp)(void); // fp points to a function that has type F
F *Fp; // Fp points to a function that has type F
-
[<a name="p141" href="#p141">page 141</a>] (<a href="#Contents">Contents</a>)
<b> Semantics</b>
3 If the declaration of an identifier for an object is a tentative definition and has internal
linkage, the declared type shall not be an incomplete type.
-
-
-
[<a name="p143" href="#p143">page 143</a>] (<a href="#Contents">Contents</a>)
4 EXAMPLE 1
the array i still has incomplete type, the implicit initializer causes it to have one element, which is set to
zero on program startup.
-
-
-
[<a name="p144" href="#p144">page 144</a>] (<a href="#Contents">Contents</a>)
<a name="6.10" href="#6.10"><b> 6.10 Preprocessing directives</b></a>
endif-line:
# endif new-line
-
-
-
[<a name="p145" href="#p145">page 145</a>] (<a href="#Contents">Contents</a>)
control-line:
string literal corresponding to an empty argument is "". The order of evaluation of # and
## operators is unspecified.
-
-
-
[<a name="p153" href="#p153">page 153</a>] (<a href="#Contents">Contents</a>)
<a name="6.10.3.3" href="#6.10.3.3"><b> 6.10.3.3 The ## operator</b></a>
#define max(a, b) ((a) > (b) ? (a) : (b))
The parentheses ensure that the arguments and the resulting expression are bound properly.
-
-
-
[<a name="p155" href="#p155">page 155</a>] (<a href="#Contents">Contents</a>)
5 EXAMPLE 3 To illustrate the rules for redefinition and reexamination, the sequence
xglue(HIGH, LOW)
results in
-
-
-
[<a name="p156" href="#p156">page 156</a>] (<a href="#Contents">Contents</a>)
printf("x" "1" "= %d, x" "2" "= %s", x1, x2);
showlist(The first, second, and third items.);
report(x>y, "x is %d but y is %d", x, y);
-
[<a name="p157" href="#p157">page 157</a>] (<a href="#Contents">Contents</a>)
results in
tokens). The directive resulting after all replacements shall match one of the two
previous forms and is then processed as appropriate.
-
-
-
[<a name="p158" href="#p158">page 158</a>] (<a href="#Contents">Contents</a>)
<a name="6.10.5" href="#6.10.5"><b> 6.10.5 Error directive</b></a>
2 EXAMPLE A directive of the form:
#pragma listing on "..\listing.dir"
can also be expressed as:
+
[<a name="p161" href="#p161">page 161</a>] (<a href="#Contents">Contents</a>)
_Pragma ( "listing on \"..\\listing.dir\"" )
#define PRAGMA(x) _Pragma(#x)
LISTING ( ..\listing.dir )
-
-
-
[<a name="p162" href="#p162">page 162</a>] (<a href="#Contents">Contents</a>)
<a name="6.11" href="#6.11"><b> 6.11 Future language directions</b></a>
<a name="6.11.9" href="#6.11.9"><b> 6.11.9 Predefined macro names</b></a>
1 Macro names beginning with __STDC_ are reserved for future standardization.
-
-
-
[<a name="p163" href="#p163">page 163</a>] (<a href="#Contents">Contents</a>)
/* ... */
i = atoi(str);
-
-
-
[<a name="p168" href="#p168">page 168</a>] (<a href="#Contents">Contents</a>)
<a name="7.2" href="#7.2"><b> 7.2 Diagnostics <assert.h></b></a>
<sup><a name="note165" href="#note165"><b>165)</b></a></sup> The message written might be of the form:
Assertion failed: expression, function abc, file xyz, line nnn.
-
[<a name="p169" href="#p169">page 169</a>] (<a href="#Contents">Contents</a>)
<a name="7.3" href="#7.3"><b> 7.3 Complex arithmetic <complex.h></b></a>
<sup><a name="note169" href="#note169"><b>169)</b></a></sup> The purpose of the pragma is to allow the implementation to use the formulas:
(x + iy) x (u + iv) = (xu - yv) + i(yu + xv)
(x + iy) / (u + iv) = [(xu + yv) + i(yu - xv)]/(u2 + v 2 )
- | x + iy | = sqrt: x 2 + y 2
+ | x + iy | = (sqrt) x 2 + y 2
???????????????
where the programmer can determine they are safe.
2 The casinh functions compute the complex arc hyperbolic sine of z, with branch cuts
outside the interval [-i, +i] along the imaginary axis.
-
[<a name="p174" href="#p174">page 174</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
float complex csinhf(float complex z);
long double complex csinhl(long double complex z);
-
[<a name="p175" href="#p175">page 175</a>] (<a href="#Contents">Contents</a>)
<b> Description</b>
float complex clogf(float complex z);
long double complex clogl(long double complex z);
-
-
[<a name="p176" href="#p176">page 176</a>] (<a href="#Contents">Contents</a>)
<b> Description</b>
<b> Returns</b>
3 The cpow functions return the complex power function value.
-
-
-
[<a name="p177" href="#p177">page 177</a>] (<a href="#Contents">Contents</a>)
<a name="7.3.8.3" href="#7.3.8.3"><b> 7.3.8.3 The csqrt functions</b></a>
float cimagf(float complex z);
long double cimagl(long double complex z);
-
-
-
[<a name="p178" href="#p178">page 178</a>] (<a href="#Contents">Contents</a>)
<b> Description</b>
the tolower function returns one of the corresponding characters (always the same one
for any given locale); otherwise, the argument is returned unchanged.
-
-
-
[<a name="p184" href="#p184">page 184</a>] (<a href="#Contents">Contents</a>)
<a name="7.4.2.2" href="#7.4.2.2"><b> 7.4.2.2 The toupper function</b></a>
the toupper function returns one of the corresponding characters (always the same one
for any given locale); otherwise, the argument is returned unchanged.
-
-
-
[<a name="p185" href="#p185">page 185</a>] (<a href="#Contents">Contents</a>)
<a name="7.5" href="#7.5"><b> 7.5 Errors <errno.h></b></a>
3 The fesetround function returns zero if and only if the requested rounding direction
was established.
-
[<a name="p193" href="#p193">page 193</a>] (<a href="#Contents">Contents</a>)
4 EXAMPLE Save, set, and restore the rounding direction. Report an error and abort if setting the
return result;
}
-
-
-
[<a name="p196" href="#p196">page 196</a>] (<a href="#Contents">Contents</a>)
<a name="7.7" href="#7.7"><b> 7.7 Characteristics of floating types <float.h></b></a>
2 The macros, their meanings, and the constraints (or restrictions) on their values are listed
in <a href="#5.2.4.2.2">5.2.4.2.2</a>.
-
-
-
[<a name="p197" href="#p197">page 197</a>] (<a href="#Contents">Contents</a>)
<a name="7.8" href="#7.8"><b> 7.8 Format conversion of integer types <inttypes.h></b></a>
Forward references: the strtol, strtoll, strtoul, and strtoull functions
(<a href="#7.20.1.4">7.20.1.4</a>).
-
-
[<a name="p200" href="#p200">page 200</a>] (<a href="#Contents">Contents</a>)
<a name="7.8.2.4" href="#7.8.2.4"><b> 7.8.2.4 The wcstoimax and wcstoumax functions</b></a>
Forward references: the wcstol, wcstoll, wcstoul, and wcstoull functions
(<a href="#7.24.4.1.2">7.24.4.1.2</a>).
-
-
-
[<a name="p201" href="#p201">page 201</a>] (<a href="#Contents">Contents</a>)
<a name="7.9" href="#7.9"><b> 7.9 Alternative spellings <iso646.h></b></a>
xor ^
xor_eq ^=
-
-
-
[<a name="p202" href="#p202">page 202</a>] (<a href="#Contents">Contents</a>)
<a name="7.10" href="#7.10"><b> 7.10 Sizes of integer types <limits.h></b></a>
2 The macros, their meanings, and the constraints (or restrictions) on their values are listed
in <a href="#5.2.4.2.1">5.2.4.2.1</a>.
-
-
-
[<a name="p203" href="#p203">page 203</a>] (<a href="#Contents">Contents</a>)
<a name="7.11" href="#7.11"><b> 7.11 Localization <locale.h></b></a>
char int_p_sign_posn; // CHAR_MAX
char int_n_sign_posn; // CHAR_MAX
-
-
-
[<a name="p204" href="#p204">page 204</a>] (<a href="#Contents">Contents</a>)
3 The macros defined are NULL (described in <a href="#7.17">7.17</a>); and
Set to 1 or 0 if the currency_symbol respectively precedes or
succeeds the value for a negative locally formatted monetary quantity.
-
[<a name="p207" href="#p207">page 207</a>] (<a href="#Contents">Contents</a>)
char p_sep_by_space
sign string, and the value for a nonnegative internationally formatted
monetary quantity.
-
-
-
[<a name="p208" href="#p208">page 208</a>] (<a href="#Contents">Contents</a>)
char int_n_sep_by_space
3 The sign string immediately precedes the currency symbol.
4 The sign string immediately succeeds the currency symbol.
-
[<a name="p209" href="#p209">page 209</a>] (<a href="#Contents">Contents</a>)
7 The implementation shall behave as if no library function calls the localeconv
int_p_sign_posn 1 1 1 1
int_n_sign_posn 4 1 4 2
-
-
-
[<a name="p210" href="#p210">page 210</a>] (<a href="#Contents">Contents</a>)
11 EXAMPLE 2 The following table illustrates how the cs_precedes, sep_by_space, and sign_posn members
3 +$1.25 +$ <a href="#1.25">1.25</a> + $1.25
4 $+1.25 $+ <a href="#1.25">1.25</a> $ +1.25
-
-
-
[<a name="p211" href="#p211">page 211</a>] (<a href="#Contents">Contents</a>)
<a name="7.12" href="#7.12"><b> 7.12 Mathematics <math.h></b></a>
<b> Returns</b>
3 The atan2 functions return arctan y/x in the interval [-pi , +pi ] radians.
-
[<a name="p219" href="#p219">page 219</a>] (<a href="#Contents">Contents</a>)
<a name="7.12.4.5" href="#7.12.4.5"><b> 7.12.4.5 The cos functions</b></a>
<b> Returns</b>
3 The tan functions return tan x.
-
-
-
[<a name="p220" href="#p220">page 220</a>] (<a href="#Contents">Contents</a>)
<a name="7.12.5" href="#7.12.5"><b> 7.12.5 Hyperbolic functions</b></a>
for arguments not in the interval [-1, +1]. A range error may occur if the argument
equals -1 or +1.
-
-
[<a name="p221" href="#p221">page 221</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
<b> Description</b>
2 The tanh functions compute the hyperbolic tangent of x.
-
-
[<a name="p222" href="#p222">page 222</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
float expm1f(float x);
long double expm1l(long double x);
-
-
-
[<a name="p223" href="#p223">page 223</a>] (<a href="#Contents">Contents</a>)
<b> Description</b>
float log10f(float x);
long double log10l(long double x);
-
-
-
[<a name="p225" href="#p225">page 225</a>] (<a href="#Contents">Contents</a>)
<b> Description</b>
<b> Returns</b>
3 The modf functions return the signed fractional part of value.
-
-
-
[<a name="p227" href="#p227">page 227</a>] (<a href="#Contents">Contents</a>)
<a name="7.12.6.13" href="#7.12.6.13"><b> 7.12.6.13 The scalbn and scalbln functions</b></a>
<b> Description</b>
2 The fabs functions compute the absolute value of a floating-point number x.
-
[<a name="p228" href="#p228">page 228</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
2 The hypot functions compute the square root of the sum of the squares of x and y,
without undue overflow or underflow. A range error may occur.
3 Returns
-4 The hypot functions return sqrt:x2 + y2 .
+4 The hypot functions return (sqrt)x2 + y2 .
???
???????????????
<a name="7.12.7.4" href="#7.12.7.4"><b> 7.12.7.4 The pow functions</b></a>
float sqrtf(float x);
long double sqrtl(long double x);
-
-
-
[<a name="p229" href="#p229">page 229</a>] (<a href="#Contents">Contents</a>)
<b> Description</b>
2 The sqrt functions compute the nonnegative square root of x. A domain error occurs if
the argument is less than zero.
<b> Returns</b>
-3 The sqrt functions return sqrt:x.
+3 The sqrt functions return (sqrt)x.
???
???
<a name="7.12.8" href="#7.12.8"><b> 7.12.8 Error and gamma functions</b></a>
2
- sqrt:pi
+ (sqrt)pi
???
??? 0
2
- sqrt:pi
+ (sqrt)pi
???
??? x
-
-
-
[<a name="p230" href="#p230">page 230</a>] (<a href="#Contents">Contents</a>)
<a name="7.12.8.3" href="#7.12.8.3"><b> 7.12.8.3 The lgamma functions</b></a>
<b> Description</b>
2 The ceil functions compute the smallest integer value not less than x.
-
[<a name="p231" href="#p231">page 231</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
2 The rint functions differ from the nearbyint functions (<a href="#7.12.9.3">7.12.9.3</a>) only in that the
rint functions may raise the ''inexact'' floating-point exception if the result differs in
value from the argument.
+
[<a name="p232" href="#p232">page 232</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
<b> Returns</b>
3 The round functions return the rounded integer value.
-
-
-
[<a name="p233" href="#p233">page 233</a>] (<a href="#Contents">Contents</a>)
<a name="7.12.9.7" href="#7.12.9.7"><b> 7.12.9.7 The lround and llround functions</b></a>
<b> Returns</b>
3 The trunc functions return the truncated integer value.
-
-
-
[<a name="p234" href="#p234">page 234</a>] (<a href="#Contents">Contents</a>)
<a name="7.12.10" href="#7.12.10"><b> 7.12.10 Remainder functions</b></a>
<b> Returns</b>
3 The copysign functions return a value with the magnitude of x and the sign of y.
-
-
-
[<a name="p236" href="#p236">page 236</a>] (<a href="#Contents">Contents</a>)
<a name="7.12.11.2" href="#7.12.11.2"><b> 7.12.11.2 The nan functions</b></a>
(x) < (y) || (x) > (y); however, islessgreater(x, y) does not raise
the ''invalid'' floating-point exception when x and y are unordered (nor does it evaluate x
and y twice).
+
[<a name="p241" href="#p241">page 241</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
<b> Returns</b>
3 The isunordered macro returns 1 if its arguments are unordered and 0 otherwise.
-
-
-
[<a name="p242" href="#p242">page 242</a>] (<a href="#Contents">Contents</a>)
<a name="7.13" href="#7.13"><b> 7.13 Nonlocal jumps <setjmp.h></b></a>
longjmp(buf, 2); // might cause memory loss
}
-
-
-
[<a name="p245" href="#p245">page 245</a>] (<a href="#Contents">Contents</a>)
<a name="7.14" href="#7.14"><b> 7.14 Signal handling <signal.h></b></a>
<b> Returns</b>
3 The raise function returns zero if successful, nonzero if unsuccessful.
-
-
-
[<a name="p248" href="#p248">page 248</a>] (<a href="#Contents">Contents</a>)
<a name="7.15" href="#7.15"><b> 7.15 Variable arguments <stdarg.h></b></a>
char *array[MAXARGS];
int ptr_no = 0;
-
-
-
[<a name="p251" href="#p251">page 251</a>] (<a href="#Contents">Contents</a>)
if (n_ptrs > MAXARGS)
f4(n_ptrs, array);
}
-
-
-
[<a name="p252" href="#p252">page 252</a>] (<a href="#Contents">Contents</a>)
<a name="7.16" href="#7.16"><b> 7.16 Boolean type and values <stdbool.h></b></a>
large enough to make this necessary.
Forward references: localization (<a href="#7.11">7.11</a>).
-
-
-
[<a name="p254" href="#p254">page 254</a>] (<a href="#Contents">Contents</a>)
<a name="7.18" href="#7.18"><b> 7.18 Integer types <stdint.h></b></a>
-- maximum value of pointer-holding signed integer type
INTPTR_MAX 215 - 1
-
-
-[<a name="p258" href="#p258">page 258</a>] (<a href="#Contents">Contents</a>)
+[<a name="p258" href="#p258">page 258</a>] (<a href="#Contents">Contents</a>)
-- maximum value of pointer-holding unsigned integer type
UINTPTR_MAX 216 - 1
by its argument and the type uintmax_t:
UINTMAX_C(value)
-
-
-
[<a name="p261" href="#p261">page 261</a>] (<a href="#Contents">Contents</a>)
<a name="7.19" href="#7.19"><b> 7.19 Input/output <stdio.h></b></a>
which expands to an integer constant expression that is the size needed for an array of
char large enough to hold the longest file name string that the implementation
-
-
[<a name="p262" href="#p262">page 262</a>] (<a href="#Contents">Contents</a>)
guarantees can be opened;<sup><a href="#note231"><b>231)</b></a></sup>
old is no longer accessible by that name. If a file named by the string pointed to by new
exists prior to the call to the rename function, the behavior is implementation-defined.
-
-
-
[<a name="p268" href="#p268">page 268</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
1 #include <a href="#7.19"><stdio.h></a>
int fflush(FILE *stream);
-
-
-
[<a name="p270" href="#p270">page 270</a>] (<a href="#Contents">Contents</a>)
<b> Description</b>
2 The freopen function opens the file whose name is the string pointed to by filename
and associates the stream pointed to by stream with it. The mode argument is used just
-
-
-
[<a name="p272" href="#p272">page 272</a>] (<a href="#Contents">Contents</a>)
as in the fopen function.<sup><a href="#note238"><b>238)</b></a></sup>
with leading zeros. The default precision is 1. The result of converting a
zero value with a precision of zero is no characters.
-
[<a name="p277" href="#p277">page 277</a>] (<a href="#Contents">Contents</a>)
f,F A double argument representing a floating-point number is converted to
for the subject sequence of the strtol function with the value 0 for the
base argument. The corresponding argument shall be a pointer to signed
integer.
+
[<a name="p284" href="#p284">page 284</a>] (<a href="#Contents">Contents</a>)
o Matches an optionally signed octal integer, whose format is the same as
entry into the alternate shift state.
23 After the call:
-
-
-
[<a name="p288" href="#p288">page 288</a>] (<a href="#Contents">Contents</a>)
#include <a href="#7.19"><stdio.h></a>
strtol, strtoll, strtoul, and strtoull functions (<a href="#7.20.1.4">7.20.1.4</a>), conversion state
(<a href="#7.24.6">7.24.6</a>), the wcrtomb function (<a href="#7.24.6.3.3">7.24.6.3.3</a>).
-
-
-
[<a name="p289" href="#p289">page 289</a>] (<a href="#Contents">Contents</a>)
<a name="7.19.6.3" href="#7.19.6.3"><b> 7.19.6.3 The printf function</b></a>
items assigned, which can be fewer than provided for, or even zero, in the event of an
early matching failure.
-
-
-
[<a name="p291" href="#p291">page 291</a>] (<a href="#Contents">Contents</a>)
<a name="7.19.6.8" href="#7.19.6.8"><b> 7.19.6.8 The vfprintf function</b></a>
3 The vprintf function returns the number of characters transmitted, or a negative value
if an output or encoding error occurred.
-
-
-
[<a name="p293" href="#p293">page 293</a>] (<a href="#Contents">Contents</a>)
<a name="7.19.6.11" href="#7.19.6.11"><b> 7.19.6.11 The vscanf function</b></a>
value if an encoding error occurred. Thus, the null-terminated output has been
completely written if and only if the returned value is nonnegative and less than n.
-
-
-
[<a name="p294" href="#p294">page 294</a>] (<a href="#Contents">Contents</a>)
<a name="7.19.6.13" href="#7.19.6.13"><b> 7.19.6.13 The vsprintf function</b></a>
items assigned, which can be fewer than provided for, or even zero, in the event of an
early matching failure.
-
-
-
[<a name="p295" href="#p295">page 295</a>] (<a href="#Contents">Contents</a>)
<a name="7.19.7" href="#7.19.7"><b> 7.19.7 Character input/output functions</b></a>
may evaluate stream more than once, so the argument should never be an expression
with side effects.
-
-
-
[<a name="p297" href="#p297">page 297</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
indeterminate and a null pointer is returned.
Forward references: future library directions (<a href="#7.26.9">7.26.9</a>).
-
-
-
[<a name="p298" href="#p298">page 298</a>] (<a href="#Contents">Contents</a>)
<a name="7.19.7.8" href="#7.19.7.8"><b> 7.19.7.8 The putc function</b></a>
3 The puts function returns EOF if a write error occurs; otherwise it returns a nonnegative
value.
-
-
-
[<a name="p299" href="#p299">page 299</a>] (<a href="#Contents">Contents</a>)
<a name="7.19.7.11" href="#7.19.7.11"><b> 7.19.7.11 The ungetc function</b></a>
error occurs, the resulting value of the file position indicator for the stream is
indeterminate.
-
-
-
[<a name="p301" href="#p301">page 301</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
<b> Returns</b>
3 The clearerr function returns no value.
-
-
-
[<a name="p304" href="#p304">page 304</a>] (<a href="#Contents">Contents</a>)
<a name="7.19.10.2" href="#7.19.10.2"><b> 7.19.10.2 The feof function</b></a>
3 The perror function returns no value.
Forward references: the strerror function (<a href="#7.21.6.2">7.21.6.2</a>).
-
[<a name="p305" href="#p305">page 305</a>] (<a href="#Contents">Contents</a>)
<a name="7.20" href="#7.20"><b> 7.20 General utilities <stdlib.h></b></a>
Forward references: the strtol, strtoll, strtoul, and strtoull functions
(<a href="#7.20.1.4">7.20.1.4</a>).
-
-
[<a name="p307" href="#p307">page 307</a>] (<a href="#Contents">Contents</a>)
<a name="7.20.1.3" href="#7.20.1.3"><b> 7.20.1.3 The strtod, strtof, and strtold functions</b></a>
4 If the subject sequence has the expected form for a floating-point number, the sequence of
characters starting with the first digit or the decimal-point character (whichever occurs
first) is interpreted as a floating constant according to the rules of <a href="#6.4.4.2">6.4.4.2</a>, except that the
+
[<a name="p308" href="#p308">page 308</a>] (<a href="#Contents">Contents</a>)
decimal-point character is used in place of a period, and that if neither an exponent part
LLONG_MAX, ULONG_MAX, or ULLONG_MAX is returned (according to the return type
and sign of the value, if any), and the value of the macro ERANGE is stored in errno.
-
-
-
[<a name="p311" href="#p311">page 311</a>] (<a href="#Contents">Contents</a>)
<a name="7.20.2" href="#7.20.2"><b> 7.20.2 Pseudo-random sequence generation functions</b></a>
return (unsigned int)(next/65536) % 32768;
}
-
-
[<a name="p312" href="#p312">page 312</a>] (<a href="#Contents">Contents</a>)
void srand(unsigned int seed)
value as a pointer to the old object), or a null pointer if the new object could not be
allocated.
-
-
-
[<a name="p314" href="#p314">page 314</a>] (<a href="#Contents">Contents</a>)
<a name="7.20.4" href="#7.20.4"><b> 7.20.4 Communication with the environment</b></a>
<b> Description</b>
2 The exit function causes normal program termination to occur. If more than one call to
the exit function is executed by a program, the behavior is undefined.
+
[<a name="p315" href="#p315">page 315</a>] (<a href="#Contents">Contents</a>)
3 First, all functions registered by the atexit function are called, in the reverse order of
command processor is available. If the argument is not a null pointer, and the system
function does return, it returns an implementation-defined value.
-
-
-
[<a name="p317" href="#p317">page 317</a>] (<a href="#Contents">Contents</a>)
<a name="7.20.5" href="#7.20.5"><b> 7.20.5 Searching and sorting utilities</b></a>
(char *)p >= (char *)base
(char *)p < (char *)base + nmemb * size
-
[<a name="p318" href="#p318">page 318</a>] (<a href="#Contents">Contents</a>)
size of each element of the array is specified by size.
returns the number of bytes modified, not including a terminating null character, if
any.267)
-
-
-
[<a name="p324" href="#p324">page 324</a>] (<a href="#Contents">Contents</a>)
<a name="7.21" href="#7.21"><b> 7.21 String handling <string.h></b></a>
2 The strncpy function copies not more than n characters (characters that follow a null
character are not copied) from the array pointed to by s2 to the array pointed to by
-
-
-
[<a name="p326" href="#p326">page 326</a>] (<a href="#Contents">Contents</a>)
s1.<sup><a href="#note269"><b>269)</b></a></sup> If copying takes place between objects that overlap, the behavior is undefined.
<b> Returns</b>
3 The strchr function returns a pointer to the located character, or a null pointer if the
character does not occur in the string.
+
[<a name="p330" href="#p330">page 330</a>] (<a href="#Contents">Contents</a>)
<a name="7.21.5.3" href="#7.21.5.3"><b> 7.21.5.3 The strcspn function</b></a>
3 The strrchr function returns a pointer to the character, or a null pointer if c does not
occur in the string.
-
-
-
[<a name="p331" href="#p331">page 331</a>] (<a href="#Contents">Contents</a>)
<a name="7.21.5.6" href="#7.21.5.6"><b> 7.21.5.6 The strspn function</b></a>
<b> Returns</b>
3 The memset function returns the value of s.
-
-
-
[<a name="p333" href="#p333">page 333</a>] (<a href="#Contents">Contents</a>)
<a name="7.21.6.2" href="#7.21.6.2"><b> 7.21.6.2 The strerror function</b></a>
3 The strlen function returns the number of characters that precede the terminating null
character.
-
-
-
[<a name="p334" href="#p334">page 334</a>] (<a href="#Contents">Contents</a>)
<a name="7.22" href="#7.22"><b> 7.22 Type-generic math <tgmath.h></b></a>
carg(dc) carg(dc), the function
cproj(ldc) cprojl(ldc)
-
-
-
[<a name="p337" href="#p337">page 337</a>] (<a href="#Contents">Contents</a>)
<a name="7.23" href="#7.23"><b> 7.23 Date and time <time.h></b></a>
broken-down time as argument.
Forward references: the localtime function (<a href="#7.23.3.4">7.23.3.4</a>).
-
-
-
[<a name="p342" href="#p342">page 342</a>] (<a href="#Contents">Contents</a>)
<a name="7.23.3.3" href="#7.23.3.3"><b> 7.23.3.3 The gmtime function</b></a>
consists of a % character, possibly followed by an E or O modifier character (described
below), followed by a character that determines the behavior of the conversion specifier.
All ordinary multibyte characters (including the terminating null character) are copied
+
[<a name="p343" href="#p343">page 343</a>] (<a href="#Contents">Contents</a>)
unchanged into the array. If copying takes place between objects that overlap, the
%OH is replaced by the hour (24-hour clock), using the locale's alternative numeric
symbols.
-
[<a name="p345" href="#p345">page 345</a>] (<a href="#Contents">Contents</a>)
%OI is replaced by the hour (12-hour clock), using the locale's alternative numeric
%X equivalent to %T.
%Z implementation-defined.
-
[<a name="p346" href="#p346">page 346</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
into the array pointed to by s not including the terminating null character. Otherwise,
zero is returned and the contents of the array are indeterminate.
-
-
-
[<a name="p347" href="#p347">page 347</a>] (<a href="#Contents">Contents</a>)
<a name="7.24" href="#7.24"><b> 7.24 Extended multibyte and wide character utilities <wchar.h></b></a>
[-]nan or [-]nan(n-wchar-sequence) -- which style, and the meaning of
any n-wchar-sequence, is implementation-defined. The F conversion
specifier produces INF, INFINITY, or NAN instead of inf, infinity, or
+
[<a name="p352" href="#p352">page 352</a>] (<a href="#Contents">Contents</a>)
nan, respectively.<sup><a href="#note283"><b>283)</b></a></sup>
-- An optional decimal integer greater than zero that specifies the maximum field width
(in wide characters).
-
-
[<a name="p356" href="#p356">page 356</a>] (<a href="#Contents">Contents</a>)
-- An optional length modifier that specifies the size of the receiving object.
i Matches an optionally signed integer, whose format is the same as expected
for the subject sequence of the wcstol function with the value 0 for the
base argument. The corresponding argument shall be a pointer to signed
+
[<a name="p358" href="#p358">page 358</a>] (<a href="#Contents">Contents</a>)
integer.
from the input stream so far by this call to the fwscanf function. Execution
of a %n directive does not increment the assignment count returned at the
completion of execution of the fwscanf function. No argument is
+
[<a name="p360" href="#p360">page 360</a>] (<a href="#Contents">Contents</a>)
converted, but one is consumed. If the conversion specification includes an
items assigned, which can be fewer than provided for, or even zero, in the event of an
early matching failure.
-
-
-
[<a name="p362" href="#p362">page 362</a>] (<a href="#Contents">Contents</a>)
<a name="7.24.2.5" href="#7.24.2.5"><b> 7.24.2.5 The vfwprintf function</b></a>
counting the terminating null wide character, or a negative value if an encoding error
occurred or if n or more wide characters were requested to be generated.
-
[<a name="p364" href="#p364">page 364</a>] (<a href="#Contents">Contents</a>)
<a name="7.24.2.8" href="#7.24.2.8"><b> 7.24.2.8 The vswscanf function</b></a>
3 The vwprintf function returns the number of wide characters transmitted, or a negative
value if an output or encoding error occurred.
-
-
-
[<a name="p365" href="#p365">page 365</a>] (<a href="#Contents">Contents</a>)
<a name="7.24.2.10" href="#7.24.2.10"><b> 7.24.2.10 The vwscanf function</b></a>
2 The wscanf function is equivalent to fwscanf with the argument stdin interposed
before the arguments to wscanf.
-
[<a name="p366" href="#p366">page 366</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
wide character sequences returns zero, and a function that copies wide characters copies
zero wide characters.
-
-
-
[<a name="p371" href="#p371">page 371</a>] (<a href="#Contents">Contents</a>)
<a name="7.24.4.1" href="#7.24.4.1"><b> 7.24.4.1 Wide string numeric conversion functions</b></a>
n-wchar-sequence nondigit
The subject sequence is defined as the longest initial subsequence of the input wide
string, starting with the first non-white-space wide character, that is of the expected form.
+
[<a name="p372" href="#p372">page 372</a>] (<a href="#Contents">Contents</a>)
The subject sequence contains no wide characters if the input wide string is not of the
<b> Returns</b>
3 The wcscpy function returns the value of s1.
-
[<a name="p376" href="#p376">page 376</a>] (<a href="#Contents">Contents</a>)
<a name="7.24.4.2.2" href="#7.24.4.2.2"><b> 7.24.4.2.2 The wcsncpy function</b></a>
4 EXAMPLE The value of the following expression is the length of the array needed to hold the
transformation of the wide string pointed to by s:
-
[<a name="p380" href="#p380">page 380</a>] (<a href="#Contents">Contents</a>)
1 + wcsxfrm(NULL, s, 0)
string pointed to by s1 which consists entirely of wide characters not from the wide
string pointed to by s2.
-
-
[<a name="p381" href="#p381">page 381</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
<b> Returns</b>
3 The wcsspn function returns the length of the segment.
-
[<a name="p382" href="#p382">page 382</a>] (<a href="#Contents">Contents</a>)
<a name="7.24.4.5.6" href="#7.24.4.5.6"><b> 7.24.4.5.6 The wcsstr function</b></a>
the start of the first token.
5 The wcstok function then searches from there for a wide character that is contained in
the current separator wide string. If no such wide character is found, the current token
+
[<a name="p383" href="#p383">page 383</a>] (<a href="#Contents">Contents</a>)
extends to the end of the wide string pointed to by s1, and subsequent searches in the
3 The wmemchr function returns a pointer to the located wide character, or a null pointer if
the wide character does not occur in the object.
-
-
-
[<a name="p384" href="#p384">page 384</a>] (<a href="#Contents">Contents</a>)
<a name="7.24.4.6" href="#7.24.4.6"><b> 7.24.4.6 Miscellaneous functions</b></a>
-- The argument s points to the initial element of an array of wide characters into which
the generated output is to be placed.
-
[<a name="p385" href="#p385">page 385</a>] (<a href="#Contents">Contents</a>)
-- The argument maxsize indicates the limiting number of wide characters.
<b> Description</b>
2 If ps is not a null pointer, the mbsinit function determines whether the pointed-to
mbstate_t object describes an initial conversion state.
+
[<a name="p387" href="#p387">page 387</a>] (<a href="#Contents">Contents</a>)
<b> Returns</b>
or (size_t)(-1).
Forward references: the mbrtowc function (<a href="#7.24.6.3.2">7.24.6.3.2</a>).
-
-
-
[<a name="p388" href="#p388">page 388</a>] (<a href="#Contents">Contents</a>)
<a name="7.24.6.3.2" href="#7.24.6.3.2"><b> 7.24.6.3.2 The mbrtowc function</b></a>
when dst is not a null pointer), the pointer object pointed to by this parameter is updated
to reflect the amount of the source processed by that invocation.
-
-
-
[<a name="p390" href="#p390">page 390</a>] (<a href="#Contents">Contents</a>)
<a name="7.24.6.4.1" href="#7.24.6.4.1"><b> 7.24.6.4.1 The mbsrtowcs function</b></a>
3 Each of the following expressions has a truth-value equivalent to the call to the wide
character classification function (<a href="#7.25.2.1">7.25.2.1</a>) in the comment that follows the expression:
-
[<a name="p397" href="#p397">page 397</a>] (<a href="#Contents">Contents</a>)
iswctype(wc, wctype("alnum")) // iswalnum(wc)
category of the current locale, the wctype function returns a nonzero value that is valid
as the second argument to the iswctype function; otherwise, it returns zero. *
-
-
-
[<a name="p398" href="#p398">page 398</a>] (<a href="#Contents">Contents</a>)
<a name="7.25.3" href="#7.25.3"><b> 7.25.3 Wide character case mapping utilities</b></a>
well as case mapping equivalent to that performed by the functions described in the
previous subclause (<a href="#7.25.3.1">7.25.3.1</a>).
-
-
-
[<a name="p399" href="#p399">page 399</a>] (<a href="#Contents">Contents</a>)
<a name="7.25.3.2.1" href="#7.25.3.2.1"><b> 7.25.3.2.1 The towctrans function</b></a>
category of the current locale, the wctrans function returns a nonzero value that is valid
as the second argument to the towctrans function; otherwise, it returns zero.
-
-
-
[<a name="p400" href="#p400">page 400</a>] (<a href="#Contents">Contents</a>)
<a name="7.26" href="#7.26"><b> 7.26 Future library directions</b></a>
types defined in the <a href="#7.18"><stdint.h></a> header. Macro names beginning with INT or UINT
and ending with _MAX, _MIN, or _C may be added to the macros defined in the
<a href="#7.18"><stdint.h></a> header.
+
[<a name="p401" href="#p401">page 401</a>] (<a href="#Contents">Contents</a>)
<a name="7.26.9" href="#7.26.9"><b> 7.26.9 Input/output <stdio.h></b></a>
1 Function names that begin with is or to and a lowercase letter may be added to the
declarations in the <a href="#7.25"><wctype.h></a> header.
-
-
-
[<a name="p402" href="#p402">page 402</a>] (<a href="#Contents">Contents</a>)
<a name="A" href="#A"><b> Annex A</b></a>
double long typedef
else register union
-
-
-
[<a name="p403" href="#p403">page 403</a>] (<a href="#Contents">Contents</a>)
<a name="A.1.3" href="#A.1.3"><b>A.1.3 Identifiers</b></a>
(<a href="#6.4.4.1">6.4.4.1</a>) decimal-constant:
nonzero-digit
decimal-constant digit
+
[<a name="p404" href="#p404">page 404</a>] (<a href="#Contents">Contents</a>)
(<a href="#6.4.4.1">6.4.4.1</a>) octal-constant:
fractional-constant exponent-partopt floating-suffixopt
digit-sequence exponent-part floating-suffixopt
-
-
-
[<a name="p405" href="#p405">page 405</a>] (<a href="#Contents">Contents</a>)
(<a href="#6.4.4.2">6.4.4.2</a>) hexadecimal-floating-constant:
' c-char-sequence '
L' c-char-sequence '
-
-
-
[<a name="p406" href="#p406">page 406</a>] (<a href="#Contents">Contents</a>)
(<a href="#6.4.4.4">6.4.4.4</a>) c-char-sequence:
the double-quote ", backslash \, or new-line character
escape-sequence
-
-
-
[<a name="p407" href="#p407">page 407</a>] (<a href="#Contents">Contents</a>)
<a name="A.1.7" href="#A.1.7"><b>A.1.7 Punctuators</b></a>
pp-number P sign
pp-number .
-
[<a name="p408" href="#p408">page 408</a>] (<a href="#Contents">Contents</a>)
<a name="A.2" href="#A.2"><b>A.2 Phrase structure grammar</b></a>
auto
register
-
-
-
[<a name="p411" href="#p411">page 411</a>] (<a href="#Contents">Contents</a>)
(<a href="#6.7.2">6.7.2</a>) type-specifier:
declarator
declaratoropt : constant-expression
-
-
-
[<a name="p412" href="#p412">page 412</a>] (<a href="#Contents">Contents</a>)
(<a href="#6.7.2.2">6.7.2.2</a>) enum-specifier:
(<a href="#6.7.8">6.7.8</a>) designation:
designator-list =
-
-
[<a name="p414" href="#p414">page 414</a>] (<a href="#Contents">Contents</a>)
(<a href="#6.7.8">6.7.8</a>) designator-list:
if ( expression ) statement else statement
switch ( expression ) statement
-
-
-
[<a name="p415" href="#p415">page 415</a>] (<a href="#Contents">Contents</a>)
(<a href="#6.8.5">6.8.5</a>) iteration-statement:
(<a href="#6.10">6.10</a>) if-section:
if-group elif-groupsopt else-groupopt endif-line
-
[<a name="p416" href="#p416">page 416</a>] (<a href="#Contents">Contents</a>)
(<a href="#6.10">6.10</a>) if-group:
(<a href="#6.10">6.10</a>) replacement-list:
pp-tokensopt
-
-
-
[<a name="p417" href="#p417">page 417</a>] (<a href="#Contents">Contents</a>)
(<a href="#6.10">6.10</a>) pp-tokens:
(<a href="#6.10">6.10</a>) new-line:
the new-line character
-
-
-
[<a name="p418" href="#p418">page 418</a>] (<a href="#Contents">Contents</a>)
<a name="B" href="#B"><b> Annex B</b></a>
double complex catanh(double complex z);
float complex catanhf(float complex z);
long double complex catanhl(long double complex z);
+
[<a name="p419" href="#p419">page 419</a>] (<a href="#Contents">Contents</a>)
double complex ccosh(double complex z);
float crealf(float complex z);
long double creall(long double complex z);
-
[<a name="p420" href="#p420">page 420</a>] (<a href="#Contents">Contents</a>)
<a name="B.3" href="#B.3"><b>B.3 Character handling <ctype.h></b></a>
int fesetenv(const fenv_t *envp);
int feupdateenv(const fenv_t *envp);
-
-
[<a name="p421" href="#p421">page 421</a>] (<a href="#Contents">Contents</a>)
<a name="B.6" href="#B.6"><b>B.6 Characteristics of floating types <float.h></b></a>
uintmax_t wcstoumax(const wchar_t * restrict nptr,
wchar_t ** restrict endptr, int base);
-
-
-
[<a name="p422" href="#p422">page 422</a>] (<a href="#Contents">Contents</a>)
<a name="B.8" href="#B.8"><b>B.8 Alternative spellings <iso646.h></b></a>
float asinf(float x);
long double asinl(long double x);
double atan(double x);
+
[<a name="p423" href="#p423">page 423</a>] (<a href="#Contents">Contents</a>)
float atanf(float x);
false
__bool_true_false_are_defined
-
-
-
[<a name="p428" href="#p428">page 428</a>] (<a href="#Contents">Contents</a>)
<a name="B.16" href="#B.16"><b>B.16 Common definitions <stddef.h></b></a>
void setbuf(FILE * restrict stream,
char * restrict buf);
-
[<a name="p429" href="#p429">page 429</a>] (<a href="#Contents">Contents</a>)
int setvbuf(FILE * restrict stream,
int puts(const char *s);
int ungetc(int c, FILE *stream);
-
[<a name="p430" href="#p430">page 430</a>] (<a href="#Contents">Contents</a>)
size_t fread(void * restrict ptr,
const char * restrict nptr,
char ** restrict endptr, int base);
-
-
-
[<a name="p431" href="#p431">page 431</a>] (<a href="#Contents">Contents</a>)
unsigned long long int strtoull(
size_t wcstombs(char * restrict s,
const wchar_t * restrict pwcs, size_t n);
-
-
-
[<a name="p432" href="#p432">page 432</a>] (<a href="#Contents">Contents</a>)
<a name="B.20" href="#B.20"><b>B.20 String handling <string.h></b></a>
char *strerror(int errnum);
size_t strlen(const char *s);
-
-
-
[<a name="p433" href="#p433">page 433</a>] (<a href="#Contents">Contents</a>)
<a name="B.21" href="#B.21"><b>B.21 Type-generic math <tgmath.h></b></a>
const char * restrict format,
const struct tm * restrict timeptr);
-
-
-
[<a name="p434" href="#p434">page 434</a>] (<a href="#Contents">Contents</a>)
<a name="B.23" href="#B.23"><b>B.23 Extended multibyte/wide character utilities <wchar.h></b></a>
wint_t putwchar(wchar_t c);
wint_t ungetwc(wint_t c, FILE *stream);
-
-
[<a name="p435" href="#p435">page 435</a>] (<a href="#Contents">Contents</a>)
double wcstod(const wchar_t * restrict nptr,
int iswupper(wint_t wc);
int iswxdigit(wint_t wc);
int iswctype(wint_t wc, wctype_t desc);
+
[<a name="p437" href="#p437">page 437</a>] (<a href="#Contents">Contents</a>)
wctype_t wctype(const char *property);
wint_t towctrans(wint_t wc, wctrans_t desc);
wctrans_t wctrans(const char *property);
-
-
-
[<a name="p438" href="#p438">page 438</a>] (<a href="#Contents">Contents</a>)
<a name="C" href="#C"><b> Annex C</b></a>
also between any call to a comparison function and any movement of the objects
passed as arguments to that call (<a href="#7.20.5">7.20.5</a>).
-
-
-
[<a name="p439" href="#p439">page 439</a>] (<a href="#Contents">Contents</a>)
<a name="D" href="#D"><b> Annex D</b></a>
0AC7-0AC9, 0ACB-0ACD, 0AD0, 0AE0
Oriya: 0B01-0B03, 0B05-0B0C, 0B0F-0B10, 0B13-0B28, 0B2A-0B30,
0B32-0B33, 0B36-0B39, 0B3E-0B43, 0B47-0B48, 0B4B-0B4D,
+
[<a name="p440" href="#p440">page 440</a>] (<a href="#Contents">Contents</a>)
0B5C-0B5D, 0B5F-0B61
2107, 210A-2113, 2115, 2118-211D, 2124, 2126, 2128, 212A-2131,
2133-2138, 2160-2182, 3005-3007, 3021-3029
-
-
-
[<a name="p441" href="#p441">page 441</a>] (<a href="#Contents">Contents</a>)
<a name="E" href="#E"><b> Annex E</b></a>
4 The values given in the following list shall be replaced by implementation-defined
constant expressions that are greater or equal in magnitude (absolute value) to those
shown, with the same sign:
+
[<a name="p442" href="#p442">page 442</a>] (<a href="#Contents">Contents</a>)
#define DBL_DIG 10
#define LDBL_EPSILON 1E-9
#define LDBL_MIN 1E-37
-
-
-
[<a name="p443" href="#p443">page 443</a>] (<a href="#Contents">Contents</a>)
<a name="F" href="#F"><b> Annex F</b></a>
efficiency of translation-time evaluation through static initialization, such as
const static double one_third = 1.0/3.0;
-
[<a name="p449" href="#p449">page 449</a>] (<a href="#Contents">Contents</a>)
execution time.
floating-point exceptions need not be precise: the actual order and number of occurrences
of floating-point exceptions (> 1) may vary from what the source code expresses. Thus,
the preceding loop could be treated as
+
[<a name="p451" href="#p451">page 451</a>] (<a href="#Contents">Contents</a>)
if (0 < n) x + 1;
<a name="F.8.2" href="#F.8.2"><b> F.8.2 Expression transformations</b></a>
-1 x / 2 (<->) x * 0.5 Although similar transformations involving inexact
+1 x / 2 <-> x * 0.5 Although similar transformations involving inexact
constants generally do not yield numerically equivalent
expressions, if the constants are exact then such
transformations can be made on IEC 60559 machines
and others that round perfectly.
- 1 * x and x / 1 (->) x The expressions 1 * x, x / 1, and x are equivalent
+ 1 * x and x / 1 -> x The expressions 1 * x, x / 1, and x are equivalent
(on IEC 60559 machines, among others).<sup><a href="#note317"><b>317)</b></a></sup>
- x / x (->) 1.0 The expressions x / x and 1.0 are not equivalent if x
+ x / x -> 1.0 The expressions x / x and 1.0 are not equivalent if x
can be zero, infinite, or NaN.
- x - y (<->) x + (-y) The expressions x - y, x + (-y), and (-y) + x
+ x - y <-> x + (-y) The expressions x - y, x + (-y), and (-y) + x
are equivalent (on IEC 60559 machines, among others).
- x - y (<->) -(y - x) The expressions x - y and -(y - x) are not
+ x - y <-> -(y - x) The expressions x - y and -(y - x) are not
equivalent because 1 - 1 is +0 but -(1 - 1) is -0 (in the
default rounding direction).<sup><a href="#note318"><b>318)</b></a></sup>
- x - x (->) 0.0 The expressions x - x and 0.0 are not equivalent if
+ x - x -> 0.0 The expressions x - x and 0.0 are not equivalent if
x is a NaN or infinite.
- 0 * x (->) 0.0 The expressions 0 * x and 0.0 are not equivalent if
+ 0 * x -> 0.0 The expressions 0 * x and 0.0 are not equivalent if
x is a NaN, infinite, or -0.
- x + 0(->)x The expressions x + 0 and x are not equivalent if x is
+ x + 0->x The expressions x + 0 and x are not equivalent if x is
-0, because (-0) + (+0) yields +0 (in the default
rounding direction), not -0.
- x - 0(->)x (+0) - (+0) yields -0 when rounding is downward
+ x - 0->x (+0) - (+0) yields -0 when rounding is downward
(toward -(inf)), but +0 otherwise, and (-0) - (+0) always
yields -0; so, if the state of the FENV_ACCESS pragma
is ''off'', promising default rounding, then the
[<a name="p452" href="#p452">page 452</a>] (<a href="#Contents">Contents</a>)
might be zero.
- -x (<->) 0 - x The expressions -x and 0 - x are not equivalent if x
+ -x <-> 0 - x The expressions -x and 0 - x are not equivalent if x
is +0, because -(+0) yields -0, but 0 - (+0) yields +0
(unless rounding is downward).
<a name="F.8.3" href="#F.8.3"><b> F.8.3 Relational operators</b></a>
-1 x != x (->) false The statement x != x is true if x is a NaN.
- x == x (->) true The statement x == x is false if x is a NaN.
- x < y (->) isless(x,y) (and similarly for <=, >, >=) Though numerically
+1 x != x -> false The statement x != x is true if x is a NaN.
+ x == x -> true The statement x == x is false if x is a NaN.
+ x < y -> isless(x,y) (and similarly for <=, >, >=) Though numerically
equal, these expressions are not equivalent because of
side effects when x or y is a NaN and the state of the
FENV_ACCESS pragma is ''on''. This transformation,
f();
nor, unless the state of the FENV_ACCESS pragma is ''off'', to
-
-
-
[<a name="p453" href="#p453">page 453</a>] (<a href="#Contents">Contents</a>)
// calls g without raising ''invalid'' if a and b are unordered
1 -- tanh((+-)0) returns (+-)0.
-- tanh((+-)(inf)) returns (+-)1.
-
-
-
[<a name="p457" href="#p457">page 457</a>] (<a href="#Contents">Contents</a>)
<a name="F.9.3" href="#F.9.3"><b> F.9.3 Exponential and logarithmic functions</b></a>
1 If the correct result is outside the range of the return type, the numeric result is
unspecified and the ''invalid'' floating-point exception is raised.
-
-
-
[<a name="p458" href="#p458">page 458</a>] (<a href="#Contents">Contents</a>)
<a name="F.9.3.6" href="#F.9.3.6"><b> F.9.3.6 The ldexp functions</b></a>
1 -- logb((+-)0) returns -(inf) and raises the ''divide-by-zero'' floating-point exception.
-- logb((+-)(inf)) returns +(inf).
-
-
-
[<a name="p459" href="#p459">page 459</a>] (<a href="#Contents">Contents</a>)
<a name="F.9.3.12" href="#F.9.3.12"><b> F.9.3.12 The modf functions</b></a>
1 -- fabs((+-)0) returns +0.
-- fabs((+-)(inf)) returns +(inf).
-
-
-
[<a name="p460" href="#p460">page 460</a>] (<a href="#Contents">Contents</a>)
<a name="F.9.4.3" href="#F.9.4.3"><b> F.9.4.3 The hypot functions</b></a>
-- pow(+(inf), y) returns +0 for y < 0.
-- pow(+(inf), y) returns +(inf) for y > 0.
-
-
-
[<a name="p461" href="#p461">page 461</a>] (<a href="#Contents">Contents</a>)
<a name="F.9.4.5" href="#F.9.4.5"><b> F.9.4.5 The sqrt functions</b></a>
-- ceil((+-)(inf)) returns (+-)(inf).
2 The double version of ceil behaves as though implemented by
-
-
-
[<a name="p462" href="#p462">page 462</a>] (<a href="#Contents">Contents</a>)
#include <a href="#7.12"><math.h></a>
exception and the result differs from the argument, they raise the ''inexact'' floating-point
exception.
-
-
-
[<a name="p463" href="#p463">page 463</a>] (<a href="#Contents">Contents</a>)
<a name="F.9.6.6" href="#F.9.6.6"><b> F.9.6.6 The round functions</b></a>
-- trunc((+-)0) returns (+-)0.
-- trunc((+-)(inf)) returns (+-)(inf).
-
-
-
[<a name="p464" href="#p464">page 464</a>] (<a href="#Contents">Contents</a>)
<a name="F.9.7" href="#F.9.7"><b> F.9.7 Remainder functions</b></a>
<a name="F.9.8.2" href="#F.9.8.2"><b> F.9.8.2 The nan functions</b></a>
1 All IEC 60559 implementations support quiet NaNs, in all floating formats.
-
-
-
[<a name="p465" href="#p465">page 465</a>] (<a href="#Contents">Contents</a>)
<a name="F.9.8.3" href="#F.9.8.3"><b> F.9.8.3 The nextafter functions</b></a>
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.
-
-
-
[<a name="p467" href="#p467">page 467</a>] (<a href="#Contents">Contents</a>)
<a name="G.4" href="#G.4"><b> G.4 Conversions</b></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. ???
+ sign of zero. For example, csqrt(-2 (+-) i0) = (+-)i(sqrt)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
-- 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''
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
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>
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>
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>
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
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,
+ 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,
+ 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
+ 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
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>
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>)
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>
-- 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>
-- 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
-- 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
-- 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>).
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
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 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 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
-- 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
<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
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
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>
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>
-- 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>).
-- 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>
-- 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
-- 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
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>
-- 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>
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>
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>
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>)
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>)
++ (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>