X-Git-Url: http://nsz.repo.hu/git/?p=c-standard;a=blobdiff_plain;f=n1548.html;fp=n1548.html;h=6502e1f38fc038edb2365d7c53478b6b7cf9b4a8;hp=76b5a5c01fba7cd610862da48178a018543eb176;hb=ab68f160796f4e7ccdad2293ab70d639aa497643;hpb=d91a54200067e06b0499f3612315d997f6de0dad diff --git a/n1548.html b/n1548.html index 76b5a5c..6502e1f 100644 --- a/n1548.html +++ b/n1548.html @@ -12,6 +12,7 @@ INTERNATIONAL STANDARD (C)ISO/IEC ISO/IEC 9 +
@@ -44,6 +45,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.+
ISO (the International Organization for Standardization) and IEC (the International @@ -692,6 +695,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. are also for information only. +
With the introduction of new devices and extended character sets, new features may be @@ -726,11 +730,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
This International Standard specifies the form and establishes the interpretation of @@ -767,6 +773,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. data-processing systems. It is intended for use by implementors and programmers. +
The following referenced documents are indispensable for the application of this @@ -794,6 +801,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. designated IEC 559:1989). +
For the purposes of this International Standard, the following definitions apply. Other @@ -803,6 +811,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. Standard are to be interpreted according to ISO/IEC 2382-1. Mathematical symbols not defined in this International Standard are to be interpreted according to ISO 31-11. +
access
@@ -817,12 +826,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
NOTE 3 Expressions that are not evaluated do not access objects.
+
alignment
requirement that objects of a particular type be located on storage boundaries with
addresses that are particular multiples of a byte address
+
argument
@@ -832,11 +843,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
expression, or a sequence of preprocessing tokens in the comma-separated list bounded
by the parentheses in a function-like macro invocation
+
behavior
external appearance or action
+
implementation-defined behavior
@@ -846,6 +859,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
when a signed integer is shifted right.
+
locale-specific behavior
@@ -857,6 +871,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
characters other than the 26 lowercase Latin letters.
+
undefined behavior
@@ -872,6 +887,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
EXAMPLE An example of undefined behavior is the behavior on integer overflow.
+
unspecified behavior
@@ -883,6 +899,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
evaluated.
+
bit
@@ -892,6 +909,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
NOTE It need not be possible to express the address of each individual bit of an object.
+
byte
@@ -906,12 +924,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
bit.
+
character
<abstract> member of a set of elements used for the organization, control, or
representation of data
+
character
@@ -919,6 +939,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
<C> bit representation that fits in a byte
+
multibyte character
@@ -928,36 +949,42 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
NOTE The extended character set is a superset of the basic character set.
+
wide character
bit representation that fits in an object of type wchar_t, capable of representing any
character in the current locale
+
constraint
restriction, either syntactic or semantic, by which the exposition of language elements is
to be interpreted
+
correctly rounded result
representation in the result format that is nearest in value, subject to the current rounding
mode, to what the result would be given unlimited range and precision
+
diagnostic message
message belonging to an implementation-defined subset of the implementation's message
output
+
forward reference
reference to a later subclause of this International Standard that contains additional
information relevant to this subclause
+
implementation
@@ -965,11 +992,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
control options, that performs translation of programs for, and supports execution of
functions in, a particular execution environment
+
implementation limit
restriction imposed upon programs by the implementation
+
memory location
@@ -1003,6 +1032,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
modified, but b and a, for example, can be.
+
object
@@ -1012,6 +1042,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
NOTE When referenced, an object may be interpreted as having a particular type; see 6.3.2.1.
+
parameter
@@ -1021,12 +1052,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
entry to the function, or an identifier from the comma-separated list bounded by the
parentheses immediately following the macro name in a function-like macro definition
+
recommended practice
specification that is strongly recommended as being in keeping with the intent of the
standard, but that may be impractical for some implementations
+
runtime-constraint
@@ -1040,21 +1073,25 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
constraints for a library function are not violated by the program; see K.3.1.4.
+
value
precise meaning of the contents of an object when interpreted as having a specific type
+
implementation-defined value
unspecified value where each implementation documents how the choice is made
+
indeterminate value
either an unspecified value or a trap representation
+
unspecified value
@@ -1064,11 +1101,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
NOTE An unspecified value cannot be a trap representation.
+
trap representation
an object representation that need not represent a value of the object type
+
perform a trap
@@ -1083,6 +1122,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
representation might perform a trap but is not required to (see 6.2.6.1).
+
[^ x^]
@@ -1091,6 +1131,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
EXAMPLE [^2.4^] is 3, [^-2.4^] is -2.
+
[_ x_]
@@ -1103,6 +1144,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
+
In this International Standard, ''shall'' is to be interpreted as a requirement on an @@ -1177,6 +1219,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. implementation. +
An implementation translates C source files and executes C programs in two data- @@ -1187,10 +1230,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Forward references: In this clause, only a few of many possible forward references have been noted. +
A C program need not all be translated at the same time. The text of the program is kept @@ -1206,6 +1252,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Forward references: linkages of identifiers (6.2.2), external definitions (6.9), preprocessing directives (6.10). +
The precedence among the syntax rules of translation is specified by the following @@ -1271,6 +1318,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. character. +
A conforming implementation shall produce at least one diagnostic message (identified in @@ -1294,6 +1342,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. valid program is still correctly translated. It may also successfully translate an invalid program. +
Two execution environments are defined: freestanding and hosted. In both cases, @@ -1304,6 +1353,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. environment.
Forward references: storage durations of objects (6.2.4), initialization (6.7.9). +
In a freestanding environment (in which C program execution may take place without any @@ -1314,6 +1364,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The effect of program termination in a freestanding environment is implementation- defined. +
A hosted environment need not be provided, but shall conform to the following @@ -1324,6 +1375,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
The function called at program startup is named main. The implementation declares no @@ -1366,6 +1418,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. char ** argv, and so on. +
In a hosted environment, a program may use all the functions, macros, type definitions, @@ -1376,6 +1429,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
If the return type of the main function is a type compatible with int, a return from the @@ -1390,6 +1444,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. will have ended in the former case, even where they would not have in the latter. +
The semantic descriptions in this International Standard describe the behavior of an @@ -1578,6 +1633,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. cannot interleave, but can be executed in any order. +
Under a hosted implementation, a program can have more than one thread of execution @@ -1796,8 +1852,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. release/consume in place of release/acquire. +
Two sets of characters and their associated collating sequences shall be defined: the set in @@ -1854,6 +1912,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Forward references: universal character names (6.4.3), character constants (6.4.4.4), preprocessing directives (6.10), string literals (6.4.5), comments (6.4.9), string (7.1.1). +
Before any other processing takes place, each occurrence of one of the following @@ -1892,6 +1951,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. described in ISO/IEC 646, which is a subset of the seven-bit US ASCII code set. +
The source character set may contain multibyte characters, used to represent members of @@ -1923,6 +1983,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. of a sequence of valid multibyte characters. +
The active position is that location on a display device where the next character output by @@ -1965,6 +2026,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. International Standard.
Forward references: the isprint function (7.4.1.8), the fputc function (7.21.7.3). +
Functions shall be implemented such that they may be interrupted at any time by a signal, @@ -1974,6 +2036,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. image (the instructions that compose the executable representation of a function) on a per-invocation basis. +
Both the translation and execution environments constrain the implementation of @@ -1981,6 +2044,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. environmental limits on a conforming implementation; the library-related limits are discussed in clause 7. +
The implementation shall be able to translate and execute at least one program that @@ -2029,6 +2093,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
19) See ''future language directions'' (6.11.3). +
An implementation is required to document all the limits specified in this subclause, @@ -2036,6 +2101,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. specified in <stdint.h>.
Forward references: integer types <stdint.h> (7.20). +
The values given below shall be replaced by constant expressions suitable for use in #if @@ -2100,6 +2166,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The characteristics of floating types are defined in terms of a model that describes a @@ -2440,8 +2507,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. limits are one less than shown here. +
In the syntax notation used in this clause, syntactic categories (nonterminals) are @@ -2459,8 +2528,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
A summary of the language syntax is given in annex A. +
An identifier can denote an object; a function; a tag or a member of a structure, union, or @@ -2517,6 +2588,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. (6.9.1), identifiers (6.4.2), macro replacement (6.10.3), name spaces of identifiers (6.2.3), source file inclusion (6.10.2), statements (6.8). +
An identifier declared in different scopes or in the same scope more than once can be @@ -2565,6 +2637,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
31) As specified in 6.2.1, the later declaration might hide the prior declaration. +
If more than one declaration of a particular identifier is visible at any point in a @@ -2590,6 +2663,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
32) There is only one name space for tags even though three are possible. +
An object has a storage duration that determines its lifetime. There are four storage @@ -2661,6 +2735,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
36) The address of such an object is taken implicitly when an array member is accessed. +
The meaning of a value stored in an object or returned by a function is determined by the @@ -2897,8 +2972,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. arguments to functions, return values from functions, and members of unions. +
The representations of all types are unspecified except as stated in this subclause. @@ -2974,6 +3051,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. on values of type T may distinguish between them. +
For unsigned integer types other than unsigned char, the bits of the object @@ -3047,6 +3125,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. bits. +
Two types have compatible type if their types are the same. Additional rules for @@ -3119,6 +3198,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
56) As specified in 6.2.1, the later declaration might hide the prior declaration. +
Complete object types have alignment requirements which place restrictions on the @@ -3166,6 +3246,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. alignment has been applied. +
Several operators convert operand values from one type to another automatically. This @@ -3178,8 +3259,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. representation.
Forward references: cast operators (6.5.4). +
Every integer type has an integer conversion rank defined as follows: @@ -3231,6 +3314,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. shift operators, as specified by their respective subclauses. +
When any scalar value is converted to _Bool, the result is 0 if the value compares equal @@ -3240,6 +3324,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
59) NaNs do not compare equal to 0 and thus convert to 1. +
When a value with integer type is converted to another integer type other than _Bool, if @@ -3256,6 +3341,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
60) The rules describe arithmetic on the mathematical value, not the value of a given type of expression. +
When a finite value of real floating type is converted to an integer type other than _Bool, @@ -3280,6 +3366,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. range of portable real floating values is (-1, Utype_MAX+1). +
When a value of real floating type is converted to a real floating type, if the value being @@ -3291,11 +3378,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. conversions (6.3.1.8, 6.8.6.4) may be represented in greater precision and range than that required by the new type. +
When a value of complex type is converted to another complex type, both the real and imaginary parts follow the conversion rules for the corresponding real types. +
When a value of real type is converted to a complex type, the real part of the complex @@ -3306,6 +3395,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. complex value is discarded and the value of the real part is converted according to the conversion rules for the corresponding real type. +
Many operators that expect operands of arithmetic type cause conversions and yield result @@ -3360,8 +3450,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
63) The cast and assignment operators are still required to remove extra range and precision. +
An lvalue is an expression (with an object type other than void) that potentially @@ -3416,6 +3508,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. designator and violates the constraint in 6.5.3.4. +
The (nonexistent) value of a void expression (an expression that has type void) shall not @@ -3424,6 +3517,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. expression, its value or designator is discarded. (A void expression is evaluated for its side effects.) +
A pointer to void may be converted to or from a pointer to any object type. A pointer to @@ -3486,6 +3580,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. correctly aligned for a pointer to type C. +
Syntax
@@ -3559,6 +3654,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. occur in source files. +
Syntax
@@ -3591,8 +3687,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
70) One possible specification for imaginary types appears in annex G. +
Syntax
@@ -3653,6 +3751,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. Extended characters may produce a long external identifier. +
Semantics
@@ -3693,6 +3792,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. identifier is explicitly declared using the name __func__, the behavior is undefined. +
Syntax
@@ -3734,6 +3834,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
74) Short identifiers for characters were first specified in ISO/IEC 10646-1/AMD9:1997. +
Syntax
@@ -3752,6 +3853,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Each constant has a type, determined by its form and value, as detailed later. +
Syntax
@@ -3857,6 +3959,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. its list and has no extended integer type, then the integer constant has no type. +
Syntax
@@ -3947,6 +4050,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. floating constants (see 7.22.1.3). +
Syntax
@@ -3959,6 +4063,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. An identifier declared as an enumeration constant has type int.
Forward references: enumeration specifiers (6.7.2.2). +
Syntax
@@ -4104,6 +4209,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the result is not a token and a diagnostic is required. See ''future language directions'' (6.11.4). +
Syntax
@@ -4215,6 +4321,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. \0 escape sequence. +
Syntax
@@ -4256,6 +4363,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. interchanged. +
Syntax
@@ -4314,6 +4422,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
82) For an example of a header name preprocessing token used in a #pragma directive, see 6.10.9. +
Syntax
@@ -4345,6 +4454,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Except within a character constant, a string literal, or a comment, the characters /* @@ -4382,6 +4492,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
83) Thus, /* ... */ comments do not nest. +
An expression is a sequence of operators and operands that specifies computation of a @@ -4489,6 +4600,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. documented. +
Syntax
@@ -4521,6 +4633,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
91) Thus, an undeclared identifier is a violation of the syntax. +
Syntax
@@ -4568,6 +4681,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Syntax
@@ -4588,6 +4702,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. argument-expression-list , assignment-expression +
Constraints
@@ -4625,6 +4740,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Forward references: additive operators (6.5.6), address and indirection operators (6.5.3.2), array declarators (6.7.6.2). +
Constraints
@@ -4718,6 +4834,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
94) In other words, function executions do not ''interleave'' with each other. +
Constraints
@@ -4840,6 +4957,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. can be safely accessed using a non-atomic object which is assigned to or from the atomic object. +
Constraints
@@ -4876,6 +4994,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. with result being the result of the operation. +
Constraints
@@ -5016,6 +5135,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the same or overlapping representations. +
Syntax
@@ -5032,6 +5152,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. & * + - ~ ! +
Constraints
@@ -5048,6 +5169,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. operand is decremented.
Forward references: additive operators (6.5.6), compound assignment (6.5.16.2). +
Constraints
@@ -5086,6 +5208,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. end of its lifetime. +
Constraints
@@ -5113,6 +5236,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Constraints
@@ -5189,6 +5313,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. size of the adjusted (pointer) type (see 6.9.1). +
Syntax
@@ -5227,6 +5352,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. unqualified version of the type. +
Syntax
@@ -5260,6 +5386,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
105) This is often called ''truncation toward zero''. +
Syntax
@@ -5364,6 +5491,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. element'' requirements. +
Syntax
@@ -5395,6 +5523,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. part of the quotient of E1 / 2E2 . If E1 has a signed type and a negative value, the resulting value is implementation-defined. +
Syntax
@@ -5445,6 +5574,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. means (a<b)<c; in other words, ''if a is less than b, compare 1 to c; otherwise, compare 0 to c''. +
Syntax
@@ -5507,6 +5637,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. behavior. +
Syntax
@@ -5531,6 +5662,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Syntax
@@ -5550,6 +5682,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. in the result is set if and only if exactly one of the corresponding bits in the converted operands is set). +
Syntax
@@ -5570,6 +5703,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. operands is set). +
Syntax
@@ -5591,6 +5725,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the first and second operands. If the first operand compares equal to 0, the second operand is not evaluated. +
Syntax
@@ -5613,6 +5748,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. not evaluated. +
Syntax
@@ -5688,6 +5824,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
110) A conditional expression does not yield an lvalue. +
Syntax
@@ -5720,6 +5857,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. when the object has volatile-qualified type. +
Constraints
@@ -5806,6 +5944,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. not volatile from the type int volatile * const). +
Constraints
@@ -5842,6 +5981,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. with result being the result of the operation. +
Syntax
@@ -5876,6 +6016,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
114) A comma operator does not yield an lvalue. +
Syntax
@@ -5967,6 +6108,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the expression is a valid integer constant expression with value one. +
Syntax
@@ -6032,6 +6174,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
119) Function definitions have a different syntax, described in 6.9.1. +
Syntax
@@ -6087,6 +6230,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. register is sizeof. +
Syntax
@@ -6160,6 +6304,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Forward references: atomic type specifiers (6.7.2.4), enumeration specifiers (6.7.2.2), structure and union specifiers (6.7.2.1), tags (6.7.2.3), type definitions (6.7.8). +
Syntax
@@ -6404,6 +6549,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. layouts. +
Syntax
@@ -6467,6 +6613,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. been seen. +
Constraints
@@ -6603,6 +6750,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
131) A similar construction with enum does not exist. +
Syntax
@@ -6624,6 +6772,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. interpreted as a type specifier (with a type name), not as a type qualifier. +
Syntax
@@ -6740,6 +6889,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
136) Both of these can occur through the use of typedefs. +
Let D be a declaration of an ordinary identifier that provides a means of designating an @@ -6863,6 +7013,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. expressions *p and p[1] are not. +
Syntax
@@ -6971,6 +7122,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. duration are also distinct in each of the definitions. +
Syntax
@@ -7016,6 +7168,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. declaration. +
Syntax
@@ -7091,6 +7244,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. directly or via one or more typedefs.
Forward references: array declarators (6.7.6.2), type definitions (6.7.8). +
Semantics
@@ -7126,6 +7280,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. declares constant_ptr as an object that has type ''const-qualified pointer to int''. +
Constraints
@@ -7252,6 +7407,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
143) Thus, * can be used only in function declarations that are not definitions (see 6.7.6.3). +
Constraints
@@ -7426,6 +7582,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
146) If both function types are ''old style'', parameter types are not compared. +
Syntax
@@ -7480,6 +7637,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. parameter specification'', rather than redundant parentheses around the omitted identifier. +
Syntax
@@ -7587,6 +7745,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. } +
Syntax
@@ -7927,6 +8086,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
152) In particular, the evaluation order need not be the same as the order of subobject initialization. +
Syntax
@@ -7947,6 +8107,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Forward references: diagnostics (7.2). +
Syntax
@@ -7981,6 +8142,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Forward references: expression and null statements (6.8.3), selection statements (6.8.4), iteration statements (6.8.5), the return statement (6.8.6.4). +
Syntax
@@ -8004,6 +8166,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. them.
Forward references: the goto statement (6.8.6.1), the switch statement (6.8.4.2). +
Syntax
@@ -8021,6 +8184,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
A compound statement is a block. +
Syntax
@@ -8080,6 +8244,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
153) Such as assignments, and function calls which have side effects. +
Syntax
@@ -8098,6 +8263,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. enclosing block. Each associated substatement is also a block whose scope is a strict subset of the scope of the selection statement. +
Constraints
@@ -8113,6 +8279,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. An else is associated with the lexically nearest preceding if that is allowed by the syntax. +
Constraints
@@ -8175,6 +8342,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. default label associated with the switch that is in the block containing the declaration. +
Syntax
@@ -8219,16 +8387,19 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. termination cannot be proven. +
The evaluation of the controlling expression takes place before each execution of the loop body. +
The evaluation of the controlling expression takes place after each execution of the loop body. +
The statement @@ -8253,6 +8424,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. specifies an operation (such as incrementing) that is performed after each iteration. +
Syntax
@@ -8272,6 +8444,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
A jump statement causes an unconditional jump to another place. +
Constraints
@@ -8329,6 +8502,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Constraints
@@ -8353,6 +8527,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
159) Following the contin: label is a null statement. +
Constraints
@@ -8366,6 +8541,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Constraints
@@ -8416,6 +8592,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. or precision than implied by the type; a cast may be used to remove this extra range and precision. +
Syntax
@@ -8462,6 +8639,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. external definition for it. +
Syntax
@@ -8603,6 +8781,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
164) A parameter identifier cannot be redeclared in the function body except in an enclosed block. +
Semantics
@@ -8649,6 +8828,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. zero on program startup. +
Syntax
@@ -8757,6 +8937,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. # character string literal creation operator in 6.10.3.2, for example). +
Constraints
@@ -8851,6 +9032,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. including within a preprocessing directive. +
Constraints
@@ -8936,6 +9118,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. phases in 5.1.1.2); thus, an expansion that results in two string literals is an invalid directive. +
Constraints
@@ -9028,6 +9211,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
172) Despite the name, a non-directive is a preprocessing directive. +
After the arguments for the invocation of a function-like macro have been identified, @@ -9042,6 +9226,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. were a parameter, and the variable arguments shall form the preprocessing tokens used to replace it. +
Constraints
@@ -9066,6 +9251,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. ## operators is unspecified. +
Constraints
@@ -9118,6 +9304,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. exist only within translation phase 4. +
After all parameters in the replacement list have been substituted and # and ## @@ -9136,6 +9323,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. as a preprocessing directive even if it resembles one, but all pragma unary operator expressions within it are then processed as specified in 6.10.9 below. +
A macro definition lasts (independent of block structure) until a corresponding #undef @@ -9294,6 +9482,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Constraints
@@ -9331,6 +9520,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. previous forms and is then processed as appropriate. +
Semantics
@@ -9341,6 +9531,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. causes the implementation to produce a diagnostic message that includes the specified sequence of preprocessing tokens. +
Semantics
@@ -9383,6 +9574,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
175) See ''future language directions'' (6.11.8). +
Semantics
@@ -9392,6 +9584,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. has no effect. +
The values of the predefined macros listed in the following subclauses176) (except for @@ -9410,6 +9603,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
176) See ''future language directions'' (6.11.9). +
The following macro names shall be defined by the implementation: @@ -9454,6 +9648,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. Standard. +
The following macro names are conditionally defined by the implementation: @@ -9492,6 +9687,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
The following macro names are conditionally defined by the implementation: @@ -9537,6 +9733,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. each revision of this International Standard. +
Semantics
@@ -9572,57 +9769,70 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. LISTING ( ..\listing.dir ) +
Future standardization may include additional floating-point types, including those with greater range, precision, or both than long double. +
Declaring an identifier with internal linkage at file scope without the static storage- class specifier is an obsolescent feature. +
Restriction of the significance of an external name to fewer than 255 characters (considering each universal character name or extended source character as a single character) is an obsolescent feature that is a concession to existing implementations. +
Lowercase letters as escape sequences are reserved for future standardization. Other characters may be used in extensions. +
The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature. +
The use of function declarators with empty parentheses (not prototype-format parameter type declarators) is an obsolescent feature. +
The use of function definitions with separate parameter identifier and declaration lists (not prototype-format parameter type and identifier declarators) is an obsolescent feature. +
Pragmas whose first preprocessing token is STDC are reserved for future standardization. +
Macro names beginning with __STDC_ are reserved for future standardization. +
A string is a contiguous sequence of characters terminated by and including the first null @@ -9666,6 +9876,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. implementation's choice. +
Each library function is declared, with a type that includes a prototype, in a header,182) @@ -9722,6 +9933,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. implementations need not support; see 6.10.8.3. +
Each header declares or defines all identifiers listed in its associated subclause, and @@ -9761,6 +9973,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. va_copy, and va_end. +
Each of the following statements applies unless explicitly stated otherwise in the detailed @@ -9886,6 +10099,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
190) This allows implementations to parallelize operations if there are no visible side effects. +
The header <assert.h> defines the assert and static_assert macros and @@ -9912,8 +10126,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. expands to _Static_assert. +
Synopsis
@@ -9946,8 +10162,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. Assertion failed: expression, function abc, file xyz, line nnn. +
The header <complex.h> defines macros and declares functions that support complex @@ -10005,11 +10223,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
194) A specification for imaginary types is in informative annex G. +
Values are interpreted as radians, not degrees. An implementation may set errno but is not required to. +
Some of the functions below have branch cuts, across which the function is @@ -10029,6 +10249,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the finite endpoint of the cut along the negative real axis approaches the cut from above, so the cut maps to the positive imaginary axis. +
Synopsis
@@ -10066,8 +10287,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. where the programmer can determine they are safe. +
Synopsis
@@ -10087,6 +10310,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. mathematically unbounded along the imaginary axis and in the interval [0, pi ] along the real axis. +
Synopsis
@@ -10108,6 +10332,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. along the real axis. +
Synopsis
@@ -10127,6 +10352,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. mathematically unbounded along the imaginary axis and in the interval [-pi /2, +pi /2] along the real axis. +
Synopsis
@@ -10143,6 +10369,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The ccos functions return the complex cosine value. +
Synopsis
@@ -10160,6 +10387,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The csin functions return the complex sine value. +
Synopsis
@@ -10176,8 +10404,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The ctan functions return the complex tangent value. +
Synopsis
@@ -10197,6 +10427,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. half-strip of nonnegative values along the real axis and in the interval [-ipi , +ipi ] along the imaginary axis. +
Synopsis
@@ -10217,6 +10448,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. strip mathematically unbounded along the real axis and in the interval [-ipi /2, +ipi /2] along the imaginary axis. +
Synopsis
@@ -10236,6 +10468,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. strip mathematically unbounded along the real axis and in the interval [-ipi /2, +ipi /2] along the imaginary axis. +
Synopsis
@@ -10253,6 +10486,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The ccosh functions return the complex hyperbolic cosine value. +
Synopsis
@@ -10269,6 +10503,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The csinh functions return the complex hyperbolic sine value. +
Synopsis
@@ -10285,8 +10520,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The ctanh functions return the complex hyperbolic tangent value. +
Synopsis
@@ -10304,6 +10541,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The cexp functions return the complex base-e exponential value. +
Synopsis
@@ -10323,8 +10561,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. mathematically unbounded along the real axis and in the interval [-ipi , +ipi ] along the imaginary axis. +
Synopsis
@@ -10342,6 +10582,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The cabs functions return the complex absolute value. +
Synopsis
@@ -10361,6 +10602,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The cpow functions return the complex power function value. +
Synopsis
@@ -10379,8 +10621,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The csqrt functions return the complex square root value, in the range of the right half- plane (including the imaginary axis). +
Synopsis
@@ -10399,6 +10643,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The carg functions return the value of the argument in the interval [-pi , +pi ]. +
Synopsis
@@ -10419,6 +10664,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
196) For a variable z of complex type, z == creal(z) + cimag(z)*I. +
Synopsis
@@ -10456,6 +10702,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -10473,6 +10720,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The conj functions return the complex conjugate value. +
Synopsis
@@ -10495,6 +10743,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The cproj functions return the value of the projection onto the Riemann sphere. +
Synopsis
@@ -10521,6 +10770,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
197) For a variable z of complex type, z == creal(z) + cimag(z)*I. +
The header <ctype.h> declares several functions useful for classifying and mapping @@ -10545,11 +10795,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. values lie from 0 (NUL) through 0x1F (US), and the character 0x7F (DEL). +
The functions in this subclause return nonzero (true) if and only if the value of the argument c conforms to that in the description of the function. +
Synopsis
@@ -10561,6 +10813,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The isalnum function tests for any character for which isalpha or isdigit is true. +
Synopsis
@@ -10584,6 +10837,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. characters; all four combinations are possible. +
Synopsis
@@ -10599,6 +10853,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. space (' '), and horizontal tab ('\t'). In the "C" locale, isblank returns true only for the standard blank characters. +
Synopsis
@@ -10610,6 +10865,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The iscntrl function tests for any control character. +
Synopsis
@@ -10621,6 +10877,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The isdigit function tests for any decimal-digit character (as defined in 5.2.1). +
Synopsis
@@ -10637,6 +10894,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The isgraph function tests for any printing character except space (' '). +
Synopsis
@@ -10651,6 +10909,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. isspace is true. In the "C" locale, islower returns true only for the lowercase letters (as defined in 5.2.1). +
Synopsis
@@ -10662,6 +10921,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The isprint function tests for any printing character including space (' '). +
Synopsis
@@ -10676,6 +10936,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. locale, ispunct returns true for every printing character for which neither isspace nor isalnum is true. +
Synopsis
@@ -10692,6 +10953,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. ('\n'), carriage return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). In the "C" locale, isspace returns true only for the standard white-space characters. +
Synopsis
@@ -10706,6 +10968,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. isspace is true. In the "C" locale, isupper returns true only for the uppercase letters (as defined in 5.2.1). +
Synopsis
@@ -10717,8 +10980,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The isxdigit function tests for any hexadecimal-digit character (as defined in 6.4.4.1). +
Synopsis
@@ -10737,6 +11002,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. for any given locale); otherwise, the argument is returned unchanged. +
Synopsis
@@ -10755,6 +11021,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. for any given locale); otherwise, the argument is returned unchanged. +
The header <errno.h> defines several macros, all relating to the reporting of error @@ -10802,6 +11069,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
203) See ''future library directions'' (7.30.3). +
The header <fenv.h> defines several macros, and declares types and functions that @@ -10921,6 +11189,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. FLT_ROUNDS, they are not required to do so. +
Synopsis
@@ -10985,6 +11254,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. ''off'', just one evaluation of x + 1 would suffice. +
The following functions provide access to the floating-point status flags.212) The int @@ -11001,6 +11271,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. content of flags. +
Synopsis
@@ -11020,6 +11291,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -11038,6 +11310,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The fegetexceptflag function returns zero if the representation was successfully stored. Otherwise, it returns a nonzero value. +
Synopsis
@@ -11068,6 +11341,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. in F.8.6 is in the same spirit. +
Synopsis
@@ -11090,6 +11364,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. all the specified flags were successfully set to the appropriate state. Otherwise, it returns a nonzero value. +
Synopsis
@@ -11134,11 +11409,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
214) This mechanism allows testing several floating-point exceptions with just one function call. +
The fegetround and fesetround functions provide control of rounding direction modes. +
Synopsis
@@ -11155,6 +11432,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. representing the current rounding direction or a negative value if there is no such rounding direction macro or the current rounding direction is not determinable. +
Synopsis
@@ -11193,11 +11471,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
The functions in this section manage the floating-point environment -- status flags and control modes -- as one entity. +
Synopsis
@@ -11214,6 +11494,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The fegetenv function returns zero if the environment was successfully stored. Otherwise, it returns a nonzero value. +
Synopsis
@@ -11240,6 +11521,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. function to write routines that hide spurious floating-point exceptions from their callers. +
Synopsis
@@ -11259,6 +11541,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The fesetenv function returns zero if the environment was successfully established. Otherwise, it returns a nonzero value. +
Synopsis
@@ -11304,6 +11587,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. } +
The header <float.h> defines several macros that expand to various limits and @@ -11313,6 +11597,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. in 5.2.4.2.2. +
The header <inttypes.h> includes the header <stdint.h> and extends it with @@ -11333,6 +11618,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
216) See ''future library directions'' (7.30.4). +
Each of the following object-like macros expands to a character string literal containing a * @@ -11401,8 +11687,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. same. +
Synopsis
@@ -11427,6 +11715,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
218) The absolute value of the most negative number cannot be represented in two's complement. +
Synopsis
@@ -11445,6 +11734,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. quot (the quotient) and rem (the remainder), each of which has type intmax_t. If either part of the result cannot be represented, the behavior is undefined. +
Synopsis
@@ -11471,6 +11761,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. (7.22.1.4). +
Synopsis
@@ -11498,6 +11789,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. (7.28.4.1.2). +
The header <iso646.h> defines the following eleven macros (on the left) that expand @@ -11517,6 +11809,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. xor_eq ^= +
The header <limits.h> defines several macros that expand to various limits and @@ -11526,6 +11819,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. in 5.2.4.2.1. +
The header <locale.h> declares two functions, one type, and defines several macros. @@ -11586,8 +11880,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
220) See ''future library directions'' (7.30.5). +
Synopsis
@@ -11653,8 +11949,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. locale when category has the value LC_ALL. +
Synopsis
@@ -11919,6 +12217,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. 4 $+1.25 $+ 1.25 $ +1.25 +
The header <math.h> declares two types and many mathematical functions and defines @@ -12047,6 +12346,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. substantially slower. +
The behavior of each of the functions in <math.h> is specified for all representable @@ -12120,6 +12420,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
230) Math errors are being indicated by the floating-point exception flags rather than by errno. +
Synopsis
@@ -12142,11 +12443,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. context, the behavior is undefined. The default state (''on'' or ''off'') for the pragma is implementation-defined. +
In the synopses in this subclause, real-floating indicates that the argument shall be an expression of real floating type. +
Synopsis
@@ -12174,6 +12477,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. become subnormal when converted to double, and zero when converted to float. +
Synopsis
@@ -12192,6 +12496,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The isfinite macro returns a nonzero value if and only if its argument has a finite value. +
Synopsis
@@ -12209,6 +12514,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The isinf macro returns a nonzero value if and only if its argument has an infinite value. +
Synopsis
@@ -12233,6 +12539,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. NaNs in the evaluation type but not in the semantic type. +
Synopsis
@@ -12251,6 +12558,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The isnormal macro returns a nonzero value if and only if its argument has a normal value. +
Synopsis
@@ -12276,8 +12584,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. unsigned, it is treated as positive. +
Synopsis
@@ -12295,6 +12605,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The acos functions return arccos x in the interval [0, pi ] radians. +
Synopsis
@@ -12312,6 +12623,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The asin functions return arcsin x in the interval [-pi /2, +pi /2] radians. +
Synopsis
@@ -12329,6 +12641,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The atan functions return arctan x in the interval [-pi /2, +pi /2] radians. +
Synopsis
@@ -12347,6 +12660,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The atan2 functions return arctan y/x in the interval [-pi , +pi ] radians. +
Synopsis
@@ -12363,6 +12677,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The cos functions return cos x. +
Synopsis
@@ -12380,6 +12695,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The sin functions return sin x. +
Synopsis
@@ -12396,8 +12712,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The tan functions return tan x. +
Synopsis
@@ -12415,6 +12733,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The acosh functions return arcosh x in the interval [0, +(inf)]. +
Synopsis
@@ -12432,6 +12751,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The asinh functions return arsinh x. +
Synopsis
@@ -12450,6 +12770,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The atanh functions return artanh x. +
Synopsis
@@ -12467,6 +12788,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The cosh functions return cosh x. +
Synopsis
@@ -12485,6 +12807,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The sinh functions return sinh x. +
Synopsis
@@ -12501,8 +12824,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The tanh functions return tanh x. +
Synopsis
@@ -12520,6 +12845,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The exp functions return ex . +
Synopsis
@@ -12538,6 +12864,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The exp2 functions return 2x . +
Synopsis
@@ -12559,6 +12886,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
234) For small magnitude x, expm1(x) is expected to be more accurate than exp(x) - 1. +
Synopsis
@@ -12584,6 +12912,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -12606,6 +12935,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The ilogb functions return the exponent of x as a signed int value.
Forward references: the logb functions (7.12.6.11). +
Synopsis
@@ -12623,6 +12953,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The ldexp functions return x x 2exp . +
Synopsis
@@ -12641,6 +12972,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The log functions return loge x. +
Synopsis
@@ -12658,6 +12990,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The log10 functions return log10 x. +
Synopsis
@@ -12685,6 +13018,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
235) For small magnitude x, log1p(x) is expected to be more accurate than log(1 + x). +
Synopsis
@@ -12702,6 +13036,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The log2 functions return log2 x. +
Synopsis
@@ -12724,6 +13059,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The logb functions return the signed exponent of x. +
Synopsis
@@ -12743,6 +13079,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The modf functions return the signed fractional part of value. +
Synopsis
@@ -12763,8 +13100,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The scalbn and scalbln functions return x x FLT_RADIXn . +
Synopsis
@@ -12782,6 +13121,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The cbrt functions return x1/3 . +
Synopsis
@@ -12798,6 +13138,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The fabs functions return | x |. +
Synopsis
@@ -12820,6 +13161,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. ----- +
Synopsis
@@ -12840,6 +13182,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The pow functions return xy . +
Synopsis
@@ -12861,8 +13204,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. - +
Synopsis
@@ -12890,6 +13235,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -12919,6 +13265,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -12937,6 +13284,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The lgamma functions return loge | (Gamma)(x) |. +
Synopsis
@@ -12956,8 +13304,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The tgamma functions return (Gamma)(x). +
Synopsis
@@ -12974,6 +13324,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The ceil functions return [^x^], expressed as a floating-point number. +
Synopsis
@@ -12990,6 +13341,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The floor functions return [_x_], expressed as a floating-point number. +
Synopsis
@@ -13009,6 +13361,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The nearbyint functions return the rounded integer value. +
Synopsis
@@ -13027,6 +13380,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The rint functions return the rounded integer value. +
Synopsis
@@ -13050,6 +13404,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The lrint and llrint functions return the rounded integer value. +
Synopsis
@@ -13068,6 +13423,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The round functions return the rounded integer value. +
Synopsis
@@ -13090,6 +13446,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The lround and llround functions return the rounded integer value. +
Synopsis
@@ -13108,8 +13465,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The trunc functions return the truncated integer value. +
Synopsis
@@ -13129,6 +13488,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. whether a domain error occurs or the fmod functions return zero is implementation- defined. +
Synopsis
@@ -13158,6 +13518,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. all implementations. +
Synopsis
@@ -13180,8 +13541,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. pointed to by quo is unspecified and whether a domain error occurs or the functions return zero is implementation defined. +
Synopsis
@@ -13202,6 +13565,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The copysign functions return a value with the magnitude of x and the sign of y. +
Synopsis
@@ -13225,6 +13589,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. If the implementation does not support quiet NaNs, the functions return zero.
Forward references: the strtod, strtof, and strtold functions (7.22.1.3). +
Synopsis
@@ -13254,6 +13619,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. function. +
Synopsis
@@ -13274,8 +13640,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. range or precision in a floating second argument. +
Synopsis
@@ -13298,6 +13666,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The fdim functions return the positive difference value. +
Synopsis
@@ -13323,6 +13692,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. fmax functions choose the numeric value. See F.10.9.2. +
Synopsis
@@ -13343,8 +13713,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
240) The fmin functions are analogous to the fmax functions in their treatment of NaNs. +
Synopsis
@@ -13369,6 +13741,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
The relational and equality operators support the usual mathematical relationships @@ -13394,6 +13767,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. type is unspecified. +
Synopsis
@@ -13411,6 +13785,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The isgreater macro returns the value of (x) > (y). +
Synopsis
@@ -13433,6 +13808,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The isgreaterequal macro returns the value of (x) >= (y). +
Synopsis
@@ -13450,6 +13826,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The isless macro returns the value of (x) < (y). +
Synopsis
@@ -13468,6 +13845,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The islessequal macro returns the value of (x) <= (y). +
Synopsis
@@ -13486,6 +13864,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The islessgreater macro returns the value of (x) < (y) || (x) > (y). +
Synopsis
@@ -13501,6 +13880,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The isunordered macro returns 1 if its arguments are unordered and 0 otherwise. +
The header <setjmp.h> defines the macro setjmp, and declares one function and @@ -13526,8 +13906,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. a program. +
Synopsis
@@ -13562,8 +13944,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
If the invocation appears in any other context, the behavior is undefined. +
Synopsis
@@ -13632,6 +14016,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
246) This includes, but is not limited to, the floating-point status flags and the state of open files. +
The header <signal.h> declares a type and two functions and defines several macros, @@ -13683,8 +14068,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. and termination. +
Synopsis
@@ -13755,8 +14142,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
249) If any signal is generated by an asynchronous signal handler, the behavior is undefined. +
Synopsis
@@ -13774,6 +14163,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The raise function returns zero if successful, nonzero if unsuccessful. +
The header <stdalign.h> defines two macros. @@ -13791,6 +14181,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. which expands to the integer constant 1. +
The header <stdarg.h> declares a type and defines four macros, for advancing @@ -13819,6 +14210,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. case the original function may make further use of the original list after the other function returns. +
The va_start and va_arg macros described in this subclause shall be implemented @@ -13829,6 +14221,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. shall be matched by a corresponding invocation of the va_end macro in the same function. +
Synopsis
@@ -13861,6 +14254,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. value of the argument after that specified by parmN . Successive invocations return the values of the remaining arguments in succession. +
Synopsis
@@ -13879,6 +14273,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The va_copy macro returns no value. +
Synopsis
@@ -13900,6 +14295,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The va_end macro returns no value. +
Synopsis
@@ -13983,8 +14379,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. } +
The header <stdatomic.h> defines several macros and declares several types and @@ -14049,8 +14447,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. operations to volatile objects. +
Synopsis
@@ -14076,6 +14476,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -14104,6 +14505,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
The enumerated type memory_order specifies the detailed regular (non-atomic) @@ -14245,6 +14647,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
251) Among other implications, atomic variables shall not decay. +
Synopsis
@@ -14261,6 +14664,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The kill_dependency macro returns the value of y. +
This subclause introduces synchronization primitives called fences. Fences can have @@ -14284,6 +14688,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. sequenced before B and reads the value written by A or a value written by any side effect in the release sequence headed by A. +
Synopsis
@@ -14309,6 +14714,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The atomic_thread_fence function returns no value. +
Synopsis
@@ -14334,6 +14740,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The atomic_signal_fence function returns no value. +
The atomic lock-free macros indicate the lock-free property of integer and address atomic @@ -14346,6 +14753,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. process more than once and memory shared between two processes. +
Synopsis
@@ -14364,6 +14772,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. inferred from the result of a lock-free query on another object. +
For each line in the following table, the atomic type name is declared as the @@ -14422,11 +14831,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. to port existing code. +
There are only a few kinds of operations on atomic types, though there are many instances of those kinds. This subclause specifies each general kind. +
Synopsis
@@ -14446,6 +14857,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The atomic_store generic functions return no value. +
Synopsis
@@ -14463,6 +14875,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. Atomically returns the value pointed to by object. +
Synopsis
@@ -14481,6 +14894,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Atomically returns the value pointed to by object immediately before the effects. +
Synopsis
@@ -14541,6 +14955,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The result of the comparison. +
The following operations perform arithmetic and bitwise computations. All of these @@ -14582,6 +14997,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. atomic_fetch and modify generic functions is the previous value of the atomic object. +
The atomic_flag type provides the classic test-and-set functionality. It has two @@ -14605,6 +15021,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -14625,6 +15042,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Atomically, the value of the object immediately before the effects. +
Synopsis
@@ -14644,6 +15062,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The atomic_flag_clear functions return no value. +
The header <stdbool.h> defines four macros. @@ -14681,6 +15100,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
252) See ''future library directions'' (7.30.7). +
The header <stddef.h> defines the following macros and declares the following types. @@ -14736,6 +15156,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Forward references: localization (7.11). +
The header <stdint.h> declares sets of integer types having specified widths, and @@ -14768,6 +15189,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
254) Some of these types may denote implementation-defined extended integer types. +
When typedef names differing only in the absence or presence of the initial u are defined, @@ -14782,6 +15204,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
The typedef name intN_t designates a signed integer type with width N , no padding @@ -14796,6 +15219,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. widths of 8, 16, 32, or 64 bits, no padding bits, and (for the signed types) that have a two's complement representation, it shall define the corresponding typedef names. +
The typedef name int_leastN_t designates a signed integer type with a width of at @@ -14816,6 +15240,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. All other types of this form are optional. +
Each of the following types designates an integer type that is usually fastest255) to operate @@ -14845,6 +15270,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. signedness and width requirements. +
The following type designates a signed integer type with the property that any valid @@ -14861,6 +15287,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. These types are optional. +
The following type designates a signed integer type capable of representing any value of @@ -14875,6 +15302,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. These types are required. +
The following object-like macros specify the minimum and maximum limits of the types * @@ -14889,6 +15317,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. except where stated to be exactly the given value. +
The following object-like macros specify the minimum and maximum limits of integer * @@ -15014,6 +15448,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. character set. +
The following function-like macros expand to integer constants suitable for initializing * @@ -15028,6 +15463,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the same type as would an expression of the corresponding type converted according to the integer promotions. The value of the expression shall be that of the argument. +
The macro INTN_C(value) shall expand to an integer constant expression @@ -15041,6 +15477,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
The following macro expands to an integer constant expression having the value specified @@ -15055,8 +15492,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. UINTMAX_C(value) +
The header <stdio.h> defines several macros, and declares three types and many @@ -15168,6 +15607,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. all possible strings of length FILENAME_MAX cannot be expected to be opened successfully. +
Input and output, whether to or from physical devices such as terminals and tape drives, @@ -15246,6 +15686,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
260) The three predefined streams stdin, stdout, and stderr are unoriented at program startup. +
A stream is associated with an external file (which may be a physical device) by opening @@ -15358,8 +15799,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. with state-dependent encoding that does not assuredly end in the initial shift state. +
Synopsis
@@ -15377,6 +15820,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The remove function returns zero if the operation succeeds, nonzero if it fails. +
Synopsis
@@ -15401,6 +15845,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. or that it is necessary to copy its contents to effectuate its renaming. +
Synopsis
@@ -15426,6 +15871,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. cannot be created, the tmpfile function returns a null pointer.
Forward references: the fopen function (7.21.5.3). +
Synopsis
@@ -15467,8 +15913,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. is ended, and before program termination. +
Synopsis
@@ -15490,6 +15938,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. errors were detected. +
Synopsis
@@ -15512,6 +15961,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. error occurs, otherwise it returns zero.
Forward references: the fopen function (7.21.5.3). +
Synopsis
@@ -15586,6 +16036,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. conform to the properties in 7.21.2). +
Synopsis
@@ -15620,6 +16071,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. returned by the fopen function may be assigned. +
Synopsis
@@ -15643,6 +16095,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The setbuf function returns no value.
Forward references: the setvbuf function (7.21.5.6). +
Synopsis
@@ -15679,6 +16132,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. before a buffer that has automatic storage duration is deallocated upon block exit. +
The formatted input/output functions shall behave as if there is a sequence point after the @@ -15688,6 +16142,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
267) The fprintf functions perform writes to memory for the %n specifier. +
Synopsis
@@ -16095,6 +16550,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the case of fixed-point conversion by the source value as well. +
Synopsis
@@ -16499,6 +16955,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
280) See ''future library directions'' (7.30.9). +
Synopsis
@@ -16515,6 +16972,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The printf function returns the number of characters transmitted, or a negative value if an output or encoding error occurred. +
Synopsis
@@ -16534,6 +16992,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. number of input items assigned, which can be fewer than provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -16557,6 +17016,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. 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. +
Synopsis
@@ -16577,6 +17037,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. counting the terminating null character, or a negative value if an encoding error occurred. +
Synopsis
@@ -16598,6 +17059,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. returns the number of input items assigned, which can be fewer than provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -16646,6 +17108,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. vsscanf invoke the va_arg macro, the value of arg after the return is indeterminate. +
Synopsis
@@ -16669,6 +17132,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. returns the number of input items assigned, which can be fewer than provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -16690,6 +17154,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The vprintf function returns the number of characters transmitted, or a negative value if an output or encoding error occurred. +
Synopsis
@@ -16712,6 +17177,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. returns the number of input items assigned, which can be fewer than provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -16737,6 +17203,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. 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. +
Synopsis
@@ -16759,6 +17226,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The vsprintf function returns the number of characters written in the array, not counting the terminating null character, or a negative value if an encoding error occurred. +
Synopsis
@@ -16783,8 +17251,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. returns the number of input items assigned, which can be fewer than provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -16810,6 +17280,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
282) An end-of-file and a read error can be distinguished by use of the feof and ferror functions. +
Synopsis
@@ -16833,6 +17304,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -16852,6 +17324,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The fputc function returns the character written. If a write error occurs, the error indicator for the stream is set and fputc returns EOF. +
Synopsis
@@ -16869,6 +17342,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The fputs function returns EOF if a write error occurs; otherwise it returns a nonnegative value. +
Synopsis
@@ -16889,6 +17363,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. getc returns EOF. If a read error occurs, the error indicator for the stream is set and getc returns EOF. +
Synopsis
@@ -16906,6 +17381,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. getchar returns EOF. If a read error occurs, the error indicator for the stream is set and getchar returns EOF. * +
Synopsis
@@ -16923,6 +17399,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The putc function returns the character written. If a write error occurs, the error indicator for the stream is set and putc returns EOF. +
Synopsis
@@ -16939,6 +17416,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The putchar function returns the character written. If a write error occurs, the error indicator for the stream is set and putchar returns EOF. +
Synopsis
@@ -16956,6 +17434,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The puts function returns EOF if a write error occurs; otherwise it returns a nonnegative value. +
Synopsis
@@ -16998,8 +17477,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
283) See ''future library directions'' (7.30.9). +
Synopsis
@@ -17030,6 +17511,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -17054,8 +17536,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. less than nmemb only if a write error is encountered. If size or nmemb is zero, fwrite returns zero and the state of the stream remains unchanged. +
Synopsis
@@ -17077,6 +17561,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Forward references: the fsetpos function (7.21.9.3). +
Synopsis
@@ -17108,6 +17593,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The fseek function returns nonzero only for a request that cannot be satisfied.
Forward references: the ftell function (7.21.9.4). +
Synopsis
@@ -17133,6 +17619,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. If successful, the fsetpos function returns zero; on failure, the fsetpos function returns nonzero and stores an implementation-defined positive value in errno. +
Synopsis
@@ -17155,6 +17642,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. for the stream. On failure, the ftell function returns -1L and stores an implementation-defined positive value in errno. +
Synopsis
@@ -17175,8 +17663,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The rewind function returns no value. +
Synopsis
@@ -17192,6 +17682,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The clearerr function returns no value. +
Synopsis
@@ -17207,6 +17698,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The feof function returns nonzero if and only if the end-of-file indicator is set for stream. +
Synopsis
@@ -17223,6 +17715,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. stream. +
Synopsis
@@ -17244,6 +17737,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Forward references: the strerror function (7.23.6.2). +
The header <stdlib.h> declares five types and several functions of general utility, and @@ -17295,12 +17789,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
284) See ''future library directions'' (7.30.10). +
The functions atof, atoi, atol, and atoll need not affect the value of the integer expression errno on an error. If the value of the result cannot be represented, the behavior is undefined. +
Synopsis
@@ -17320,6 +17816,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The atof function returns the converted value.
Forward references: the strtod, strtof, and strtold functions (7.22.1.3). +
Synopsis
@@ -17346,6 +17843,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. (7.22.1.4). +
Synopsis
@@ -17458,6 +17956,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. to the same internal floating value, but if not will round to adjacent values. +
Synopsis
@@ -17534,8 +18033,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. and sign of the value, if any), and the value of the macro ERANGE is stored in errno. +
Synopsis
@@ -17563,6 +18064,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. particular requirements should use a generator that is known to be sufficient for their needs. +
Synopsis
@@ -17603,6 +18105,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
The order and contiguity of storage allocated by successive calls to the @@ -17618,6 +18121,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. is returned, or the behavior is as if the size were some nonzero value, except that the returned pointer shall not be used to access an object. +
Synopsis
@@ -17637,6 +18141,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. space. +
Synopsis
@@ -17657,6 +18162,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. constant. +
Synopsis
@@ -17675,6 +18181,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The free function returns no value. +
Synopsis
@@ -17695,6 +18202,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The malloc function returns either a null pointer or a pointer to the allocated space. +
Synopsis
@@ -17721,8 +18229,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. value as a pointer to the old object), or a null pointer if the new object could not be allocated. +
Synopsis
@@ -17743,6 +18253,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The abort function does not return to its caller. +
Synopsis
@@ -17768,6 +18279,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. applications may need to call both registration functions with the same argument. +
Synopsis
@@ -17796,6 +18308,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. applications may need to call both registration functions with the same argument. +
Synopsis
@@ -17833,6 +18346,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. other registered functions. +
Synopsis
@@ -17856,6 +18370,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The _Exit function cannot return to its caller. +
Synopsis
@@ -17883,6 +18398,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
293) Many implementations provide non-standard functions that modify the environment list. +
Synopsis
@@ -17917,6 +18433,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. other registered functions. +
Synopsis
@@ -17937,6 +18454,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. command processor is available. If the argument is not a null pointer, and the system function does return, it returns an implementation-defined value. +
These utilities make use of a comparison function to search or sort arrays of unspecified @@ -17980,6 +18498,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -18014,6 +18533,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
296) In practice, the entire array is sorted according to the comparison function. +
Synopsis
@@ -18038,8 +18558,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The qsort function returns no value. +
Synopsis
@@ -18066,6 +18588,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
297) The absolute value of the most negative number cannot be represented in two's complement. +
Synopsis
@@ -18087,6 +18610,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. each of which has the same type as the arguments numer and denom. If either part of the result cannot be represented, the behavior is undefined. +
The behavior of the multibyte character functions is affected by the LC_CTYPE category @@ -18103,6 +18627,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. character codes, but are grouped with an adjacent multibyte character. +
Synopsis
@@ -18135,6 +18660,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. multibyte character).
Forward references: the mbtowc function (7.22.7.2). +
Synopsis
@@ -18168,6 +18694,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. macro. +
Synopsis
@@ -18196,11 +18723,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
In no case will the value returned be greater than the value of the MB_CUR_MAX macro. +
The behavior of the multibyte string functions is affected by the LC_CTYPE category of the current locale. +
Synopsis
@@ -18233,6 +18762,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
299) The array will not be null-terminated if the value returned is n. +
Synopsis
@@ -18265,8 +18795,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
The header <string.h> declares one type and several functions, and defines one @@ -18292,8 +18824,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
300) See ''future library directions'' (7.30.11). +
Synopsis
@@ -18317,6 +18851,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -18335,6 +18870,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The memmove function returns the value of s1. +
Synopsis
@@ -18352,6 +18888,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The strcpy function returns the value of s1. +
Synopsis
@@ -18380,8 +18917,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. not be null-terminated. +
Synopsis
@@ -18400,6 +18939,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The strcat function returns the value of s1. +
Synopsis
@@ -18428,6 +18968,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. strlen(s1)+n+1. +
The sign of a nonzero value returned by the comparison functions memcmp, strcmp, @@ -18435,6 +18976,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. pair of characters (both interpreted as unsigned char) that differ in the objects being compared. +
Synopsis
@@ -18458,6 +19000,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. comparison. +
Synopsis
@@ -18477,6 +19020,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. pointed to by s2. +
Synopsis
@@ -18494,6 +19038,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. accordingly as the string pointed to by s1 is greater than, equal to, or less than the string pointed to by s2 when both are interpreted as appropriate to the current locale. +
Synopsis
@@ -18512,6 +19057,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. accordingly as the possibly null-terminated array pointed to by s1 is greater than, equal to, or less than the possibly null-terminated array pointed to by s2. +
Synopsis
@@ -18545,8 +19091,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -18565,6 +19113,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The memchr function returns a pointer to the located character, or a null pointer if the character does not occur in the object. +
Synopsis
@@ -18583,6 +19132,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The strchr function returns a pointer to the located character, or a null pointer if the character does not occur in the string. +
Synopsis
@@ -18599,6 +19149,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The strcspn function returns the length of the segment. +
Synopsis
@@ -18615,6 +19166,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The strpbrk function returns a pointer to the character, or a null pointer if no character from s2 occurs in s1. +
Synopsis
@@ -18633,6 +19185,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The strrchr function returns a pointer to the character, or a null pointer if c does not occur in the string. +
Synopsis
@@ -18648,6 +19201,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The strspn function returns the length of the segment. +
Synopsis
@@ -18665,6 +19219,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The strstr function returns a pointer to the located string, or a null pointer if the string is not found. If s2 points to a string with zero length, the function returns s1. +
Synopsis
@@ -18716,8 +19271,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -18734,6 +19291,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The memset function returns the value of s. +
Synopsis
@@ -18755,6 +19313,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. specific. The array pointed to shall not be modified by the program, but may be overwritten by a subsequent call to the strerror function. +
Synopsis
@@ -18771,6 +19330,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. character. +
The header <tgmath.h> includes the headers <math.h> and <complex.h> and @@ -18901,8 +19461,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the behavior is undefined. +
The header <threads.h> defines macros, and declares types, enumeration constants, @@ -19009,8 +19571,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. was unable to allocate memory. +
Synopsis
@@ -19028,8 +19592,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The call_once function returns no value. +
Synopsis
@@ -19048,6 +19614,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The cnd_broadcast function returns thrd_success on success, or thrd_error if the request could not be honored. +
Synopsis
@@ -19065,6 +19632,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The cnd_destroy function returns no value. +
Synopsis
@@ -19084,6 +19652,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. memory could be allocated for the newly created condition, or thrd_error if the request could not be honored. +
Synopsis
@@ -19102,6 +19671,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The cnd_signal function returns thrd_success on success or thrd_error if the request could not be honored. +
Synopsis
@@ -19125,6 +19695,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. thrd_timeout if the time specified in the call was reached without acquiring the requested resource, or thrd_error if the request could not be honored. +
Synopsis
@@ -19145,8 +19716,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The cnd_wait function returns thrd_success on success or thrd_error if the request could not be honored. +
Synopsis
@@ -19163,6 +19736,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The mtx_destroy function returns no value. +
Synopsis
@@ -19188,6 +19762,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The mtx_init function returns thrd_success on success, or thrd_error if the request could not be honored. +
Synopsis
@@ -19207,6 +19782,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. honored. +
Synopsis
@@ -19227,6 +19803,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. reached without acquiring the requested resource, or thrd_error if the request could not be honored. +
Synopsis
@@ -19246,6 +19823,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the resource requested is already in use, or thrd_error if the request could not be honored. +
Synopsis
@@ -19263,8 +19841,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The mtx_unlock function returns thrd_success on success or thrd_error if the request could not be honored. +
Synopsis
@@ -19287,6 +19867,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. no memory could be allocated for the thread requested, or thrd_error if the request could not be honored. +
Synopsis
@@ -19301,6 +19882,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The thrd_current function returns the identifier of the thread that called it. +
Synopsis
@@ -19319,6 +19901,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The thrd_detach function returns thrd_success on success or thrd_error if the request could not be honored. +
Synopsis
@@ -19335,6 +19918,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The thrd_equal function returns zero if the thread thr0 and the thread thr1 refer to different threads. Otherwise the thrd_equal function returns a nonzero value. +
Synopsis
@@ -19350,6 +19934,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The thrd_exit function returns no value. +
Synopsis
@@ -19370,6 +19955,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The thrd_join function returns thrd_success on success or thrd_error if the request could not be honored. +
Synopsis
@@ -19385,6 +19971,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The thrd_sleep function returns no value. +
Synopsis
@@ -19400,8 +19987,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The thrd_yield function returns no value. +
Synopsis
@@ -19421,6 +20010,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. thrd_success; otherwise, thrd_error is returned and the thread-specific storage pointed to by key is set to an undefined value. +
Synopsis
@@ -19436,6 +20026,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The tss_delete function returns no value. +
Synopsis
@@ -19452,6 +20043,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The tss_get function returns the value for the current thread if successful, or zero if unsuccessful. +
Synopsis
@@ -19469,8 +20061,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The tss_set function returns thrd_success on success or thrd_error if the request could not be honored. +
Synopsis
@@ -19497,8 +20091,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. xtime object is system dependent. +
The header <time.h> defines two macros, and declares several types and functions for @@ -19555,8 +20151,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
307) The range [0, 60] for tm_sec allows for a positive leap second. +
Synopsis
@@ -19581,6 +20179,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the program and its return value subtracted from the value returned by subsequent calls. +
Synopsis
@@ -19601,6 +20200,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -19661,6 +20261,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. causes it to attempt to determine whether Daylight Saving Time is in effect for the specified time. +
Synopsis
@@ -19679,6 +20280,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. available. If timer is not a null pointer, the return value is also assigned to the object it points to. +
Except for the strftime function, these functions each return a pointer to one of two @@ -19688,6 +20290,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. previous call to any of them and the functions are not required to avoid data races. The implementation shall behave as if no other library functions call these functions. +
Synopsis
@@ -19737,6 +20340,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Synopsis
@@ -19761,6 +20365,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. broken-down time as argument.
Forward references: the localtime function (7.26.3.4). +
Synopsis
@@ -19777,6 +20382,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The gmtime function returns a pointer to the broken-down time, or a null pointer if the specified time cannot be converted to UTC. +
Synopsis
@@ -19793,6 +20399,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The localtime function returns a pointer to the broken-down time, or a null pointer if the specified time cannot be converted to local time. +
Synopsis
@@ -20000,6 +20607,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. zero is returned and the contents of the array are indeterminate. +
The header <uchar.h> declares types and functions for manipulating Unicode @@ -20018,6 +20626,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. which is an unsigned integer type used for 32-bit characters and is the same type as uint_least32_t (also described in 7.20.1.2). +
These functions have a parameter, ps, of type pointer to mbstate_t that points to an @@ -20028,6 +20637,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. to avoid data races in this case. The implementation behaves as if no library function calls these functions with a null pointer for ps. +
Synopsis
@@ -20089,6 +20699,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. sequence of redundant shift sequences (for implementations with state-dependent encodings). +
Synopsis
@@ -20121,6 +20732,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the function stores the value of the macro EILSEQ in errno and returns (size_t)(-1); the conversion state is unspecified. +
Synopsis
@@ -20182,6 +20794,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. sequence of redundant shift sequences (for implementations with state-dependent encodings). +
Synopsis
@@ -20216,8 +20829,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
The header <wchar.h> defines four macros, and declares four data types, one tag, and @@ -20279,6 +20894,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
315) The value of the macro WEOF may differ from that of EOF and need not be negative. +
The formatted wide character input/output functions shall behave as if there is a sequence @@ -20288,6 +20904,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
316) The fwprintf functions perform writes to memory for the %n specifier. +
Synopsis
@@ -20652,6 +21269,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the case of fixed-point conversion by the source value as well. +
Synopsis
@@ -20948,6 +21566,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
326) See ''future library directions'' (7.30.12). +
Synopsis
@@ -20969,6 +21588,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. 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 written. +
Synopsis
@@ -20991,6 +21611,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. zero, in the event of an early matching failure. +
Synopsis
@@ -21041,6 +21662,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. invoke the va_arg macro, the value of arg after the return is indeterminate. +
Synopsis
@@ -21065,6 +21687,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. returns the number of input items assigned, which can be fewer than provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -21089,6 +21712,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. occurred or if n or more wide characters were requested to be generated. +
Synopsis
@@ -21112,6 +21736,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. returns the number of input items assigned, which can be fewer than provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -21133,6 +21758,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. value if an output or encoding error occurred. +
Synopsis
@@ -21155,6 +21781,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. returns the number of input items assigned, which can be fewer than provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -21171,6 +21798,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The wprintf function returns the number of wide characters transmitted, or a negative value if an output or encoding error occurred. +
Synopsis
@@ -21190,8 +21818,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. returns the number of input items assigned, which can be fewer than provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -21220,6 +21850,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. Also, errno will be set to EILSEQ by input/output functions only if an encoding error occurs. +
Synopsis
@@ -21246,6 +21877,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. null pointer is returned. If a read or encoding error occurs during the operation, the array contents are indeterminate and a null pointer is returned. +
Synopsis
@@ -21267,6 +21899,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. error indicator for the stream is set and fputwc returns WEOF. If an encoding error occurs, the value of the macro EILSEQ is stored in errno and fputwc returns WEOF. +
Synopsis
@@ -21286,6 +21919,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. returns a nonnegative value. +
Synopsis
@@ -21310,6 +21944,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
329) If the orientation of the stream has already been determined, fwide does not change it. +
Synopsis
@@ -21328,6 +21963,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The getwc function returns the next wide character from the input stream pointed to by stream, or WEOF. +
Synopsis
@@ -21348,6 +21984,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The getwchar function returns the next wide character from the input stream pointed to by stdin, or WEOF. +
Synopsis
@@ -21365,6 +22002,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The putwc function returns the wide character written, or WEOF. +
Synopsis
@@ -21379,6 +22017,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The putwchar function returns the character written, or WEOF. +
Synopsis
@@ -21417,6 +22056,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The ungetwc function returns the wide character pushed back, or WEOF if the operation fails. +
The header <wchar.h> declares a number of functions useful for wide string @@ -21433,8 +22073,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. zero wide characters. +
Synopsis
@@ -21559,6 +22201,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. to the same internal floating value, but if not will round to adjacent values. +
Synopsis
@@ -21634,8 +22277,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. LLONG_MAX, ULONG_MAX, or ULLONG_MAX is returned (according to the return type sign of the value, if any), and the value of the macro ERANGE is stored in errno. +
Synopsis
@@ -21653,6 +22298,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The wcscpy function returns the value of s1. +
Synopsis
@@ -21680,6 +22326,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. result will not be null-terminated. +
Synopsis
@@ -21702,6 +22349,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -21721,8 +22369,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The wmemmove function returns the value of s1. +
Synopsis
@@ -21740,6 +22390,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The wcscat function returns the value of s1. +
Synopsis
@@ -21766,12 +22417,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. wcslen(s1)+n+1. +
Unless explicitly stated otherwise, the functions described in this subclause order two wide characters the same way as two integers of the underlying integer type designated by wchar_t. +
Synopsis
@@ -21789,6 +22442,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. accordingly as the wide string pointed to by s1 is greater than, equal to, or less than the wide string pointed to by s2. +
Synopsis
@@ -21811,6 +22465,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. wide string pointed to by s2 when both are interpreted as appropriate to the current locale. +
Synopsis
@@ -21830,6 +22485,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. accordingly as the possibly null-terminated array pointed to by s1 is greater than, equal to, or less than the possibly null-terminated array pointed to by s2. +
Synopsis
@@ -21862,6 +22518,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -21880,8 +22537,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. accordingly as the object pointed to by s1 is greater than, equal to, or less than the object pointed to by s2. +
Synopsis
@@ -21898,6 +22557,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The wcschr function returns a pointer to the located wide character, or a null pointer if the wide character does not occur in the wide string. +
Synopsis
@@ -21915,6 +22575,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The wcscspn function returns the length of the segment. +
Synopsis
@@ -21931,6 +22592,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The wcspbrk function returns a pointer to the wide character in s1, or a null pointer if no wide character from s2 occurs in s1. +
Synopsis
@@ -21947,6 +22609,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The wcsrchr function returns a pointer to the wide character, or a null pointer if c does not occur in the wide string. +
Synopsis
@@ -21964,6 +22627,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The wcsspn function returns the length of the segment. +
Synopsis
@@ -21982,6 +22646,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. wide string is not found. If s2 points to a wide string with zero length, the function returns s1. +
Synopsis
@@ -22041,6 +22706,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -22059,8 +22725,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the wide character does not occur in the object. +
Synopsis
@@ -22076,6 +22744,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The wcslen function returns the number of wide characters that precede the terminating null wide character. +
Synopsis
@@ -22091,8 +22760,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The wmemset function returns the value of s. +
Synopsis
@@ -22124,6 +22795,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. wide character. Otherwise, zero is returned and the contents of the array are indeterminate. +
The header <wchar.h> declares an extended set of functions useful for conversion @@ -22161,8 +22833,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. character string. +
Synopsis
@@ -22180,6 +22854,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. does not constitute a valid single-byte character in the initial shift state. Otherwise, it returns the wide character representation of that character. +
Synopsis
@@ -22198,8 +22873,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. length one in the initial shift state. Otherwise, it returns the single-byte representation of that character as an unsigned char converted to an int. +
Synopsis
@@ -22217,6 +22894,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The mbsinit function returns nonzero if ps is a null pointer or if the referenced object describes an initial conversion state; otherwise, it returns zero. +
These functions differ from the corresponding multibyte character functions of 7.22.7 @@ -22231,6 +22909,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. Also unlike their corresponding functions, the return value does not represent whether the encoding is state-dependent. +
Synopsis
@@ -22255,6 +22934,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
Forward references: the mbrtowc function (7.28.6.3.2). +
Synopsis
@@ -22312,6 +22992,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. sequence of redundant shift sequences (for implementations with state-dependent encodings). +
Synopsis
@@ -22342,6 +23023,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the function stores the value of the macro EILSEQ in errno and returns (size_t)(-1); the conversion state is unspecified. +
These functions differ from the corresponding multibyte string functions of 7.22.8 @@ -22359,6 +23041,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. to reflect the amount of the source processed by that invocation. +
Synopsis
@@ -22403,6 +23086,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
337) Thus, the value of len is ignored if dst is a null pointer. +
Synopsis
@@ -22449,8 +23133,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. include those necessary to reach the initial shift state immediately before the null byte. +
The header <wctype.h> defines one macro, and declares three data types and many @@ -22498,6 +23184,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
339) See ''future library directions'' (7.30.13). +
The header <wctype.h> declares several functions useful for classifying wide @@ -22508,6 +23195,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. term control wide character refers to a member of a locale-specific set of wide characters that are not printing wide characters. +
The functions in this subclause return nonzero (true) if and only if the value of the @@ -22527,6 +23215,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. && iswspace(wc) is true, but not both. +
Synopsis
@@ -22539,6 +23228,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The iswalnum function tests for any wide character for which iswalpha or iswdigit is true. +
Synopsis
@@ -22560,6 +23250,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. wide characters; all four combinations are possible. +
Synopsis
@@ -22575,6 +23266,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. characters are the following: space (L' '), and horizontal tab (L'\t'). In the "C" locale, iswblank returns true only for the standard blank characters. +
Synopsis
@@ -22586,6 +23278,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The iswcntrl function tests for any control wide character. +
Synopsis
@@ -22598,6 +23291,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The iswdigit function tests for any wide character that corresponds to a decimal-digit character (as defined in 5.2.1). +
Synopsis
@@ -22621,6 +23315,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. characters other than ' '. +
Synopsis
@@ -22634,6 +23329,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. letter or is one of a locale-specific set of wide characters for which none of iswcntrl, iswdigit, iswpunct, or iswspace is true. +
Synopsis
@@ -22645,6 +23341,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The iswprint function tests for any printing wide character. +
Synopsis
@@ -22658,6 +23355,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. specific set of punctuation wide characters for which neither iswspace nor iswalnum is true.342) +
Synopsis
@@ -22675,6 +23373,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. set of white-space wide characters for which none of iswalnum, iswgraph, or iswpunct is true. +
Synopsis
@@ -22688,6 +23387,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. letter or is one of a locale-specific set of wide characters for which none of iswcntrl, iswdigit, iswpunct, or iswspace is true. +
Synopsis
@@ -22700,12 +23400,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The iswxdigit function tests for any wide character that corresponds to a hexadecimal-digit character (as defined in 6.4.4.1). +
The functions wctype and iswctype provide extensible wide character classification as well as testing equivalent to that performed by the functions described in the previous subclause (7.29.2.1). +
Synopsis
@@ -22743,6 +23445,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. function returns zero (false).
Forward references: the wctype function (7.29.2.2.2). +
Synopsis
@@ -22764,12 +23467,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. as the second argument to the iswctype function; otherwise, it returns zero. +
The header <wctype.h> declares several functions useful for mapping wide characters. +
Synopsis
@@ -22788,6 +23494,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. characters (always the same one for any given locale); otherwise, the argument is returned unchanged. +
Synopsis
@@ -22806,6 +23513,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. characters (always the same one for any given locale); otherwise, the argument is returned unchanged. +
The functions wctrans and towctrans provide extensible wide character mapping as @@ -22813,6 +23521,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. previous subclause (7.29.3.1). +
Synopsis
@@ -22837,6 +23546,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The towctrans function returns the mapped value of wc using the mapping described by desc. If desc is zero, the towctrans function returns the value of wc. +
Synopsis
@@ -22858,11 +23568,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. as the second argument to the towctrans function; otherwise, it returns zero. +
The following names are grouped under individual headers for convenience. All external names described below are reserved no matter what headers are included by the program. +
The function names @@ -22874,36 +23586,43 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. and the same names suffixed with f or l may be added to the declarations in the <complex.h> header. +
Function names that begin with either is or to, and a lowercase letter may be added to the declarations in the <ctype.h> header. +
Macros that begin with E and a digit or E and an uppercase letter may be added to the declarations in the <errno.h> header. +
Macro names beginning with PRI or SCN followed by any lowercase letter or X may be added to the macros defined in the <inttypes.h> header. +
Macros that begin with LC_ and an uppercase letter may be added to the definitions in the <locale.h> header. +
Macros that begin with either SIG and an uppercase letter or SIG_ and an uppercase letter may be added to the definitions in the <signal.h> header. +
The ability to undefine and perhaps then redefine the macros bool, true, and false is an obsolescent feature. +
Typedef names beginning with int or uint and ending with _t may be added to the @@ -22912,6 +23631,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. <stdint.h> header. +
Lowercase letters may be added to the conversion specifiers and length modifiers in @@ -22920,16 +23640,19 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The use of ungetc on a binary stream where the file position indicator is zero prior to * the call is an obsolescent feature. +
Function names that begin with str and a lowercase letter may be added to the declarations in the <stdlib.h> header. +
Function names that begin with str, mem, or wcs and a lowercase letter may be added to the declarations in the <string.h> header. +
Function names that begin with wcs and a lowercase letter may be added to the @@ -22938,6 +23661,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. Lowercase letters may be added to the conversion specifiers and length modifiers in fwprintf and fwscanf. Other characters may be used in extensions. +
@@ -22945,6 +23669,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. declarations in the <wctype.h> header. +
(informative) @@ -22954,8 +23679,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. NOTE The notation is described in 6.1. ++A.1 Lexical grammar
+A.1.1 Lexical elements
(6.4) token:@@ -22977,6 +23704,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. each non-white-space character that cannot be one of the above+A.1.2 Keywords
(6.4.1) keyword: one of@@ -22997,6 +23725,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. for typedef+A.1.3 Identifiers
(6.4.2.1) identifier:@@ -23023,6 +23752,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. 0 1 2 3 4 5 6 7 8 9+A.1.4 Universal character names
(6.4.3) universal-character-name:@@ -23035,6 +23765,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. hexadecimal-digit hexadecimal-digit+A.1.5 Constants
(6.4.4) constant:@@ -23206,6 +23937,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. hexadecimal-escape-sequence hexadecimal-digit+A.1.6 String literals
(6.4.5) string-literal:@@ -23230,6 +23962,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. escape-sequence+A.1.7 Punctuators
(6.4.6) punctuator: one of @@ -23243,6 +23976,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. <: :> <% %> %: %:%:
@@ -23270,6 +24004,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the new-line character and "+
@@ -23430,6 +24167,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. conditional-expression+
@@ -23658,6 +24396,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. _Static_assert ( constant-expression , string-literal ) ;+
@@ -23714,6 +24453,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. return expressionopt ;+
@@ -23735,6 +24475,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. declaration-list declaration+
@@ -23822,12 +24563,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. the new-line character+
(informative) Library summary+
NDEBUG @@ -23835,6 +24578,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. void assert(scalar expression);+
int isalnum(int c); @@ -23933,6 +24678,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. int toupper(int c);+
EDOM EILSEQ ERANGE errno @@ -23940,6 +24686,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. errno_t+
@@ -23963,6 +24710,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. int feupdateenv(const fenv_t *envp);+
FLT_ROUNDS DBL_DIG FLT_MAX @@ -23981,6 +24729,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. FLT_DIG LDBL_MAX_10_EXP+
@@ -24008,6 +24757,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. wchar_t ** restrict endptr, int base);+
and bitor not_eq xor @@ -24015,6 +24765,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. bitand not or_eq+
CHAR_BIT CHAR_MAX INT_MIN ULONG_MAX @@ -24024,6 +24775,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. CHAR_MIN USHRT_MAX LONG_MAX+
struct lconv LC_ALL LC_CTYPE LC_NUMERIC @@ -24032,6 +24784,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. struct lconv *localeconv(void);+
jmp_buf @@ -24241,6 +24995,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. _Noreturn void longjmp(jmp_buf env, int val);+
@@ -24251,12 +25006,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. int raise(int sig);+
alignas __alignas_is_defined+
va_list @@ -24266,6 +25023,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. void va_start(va_list ap, parmN);+
bool @@ -24343,6 +25102,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. __bool_true_false_are_defined+
ptrdiff_t max_align_t NULL @@ -24352,6 +25112,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. rsize_t+
@@ -24372,6 +25133,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. RSIZE_MAX+
acos sqrt fmod nextafter @@ -24681,6 +25446,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. pow fmin nearbyint creal+
@@ -24724,6 +25490,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. int xtime_get(xtime *xt, int base);+
@@ -24754,6 +25521,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. struct tm * restrict result);+
mbstate_t size_t char16_t char32_t @@ -24769,6 +25537,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. mbstate_t * restrict ps);+
@@ -24977,6 +25747,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. wctrans_t wctrans(const char *property);+
(informative) @@ -25008,6 +25779,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +Annex D
(normative) @@ -25017,6 +25789,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. This clause lists the hexadecimal code values that are valid in universal character names in identifiers. +D.1 Ranges of characters allowed
00A8, 00AA, 00AD, 00AF, 00B2-00B5, 00B7-00BA, 00BC-00BE, 00C0-00D6, @@ -25038,11 +25811,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. 60000-6FFFD, 70000-7FFFD, 80000-8FFFD, 90000-9FFFD, A0000-AFFFD, B0000-BFFFD, C0000-CFFFD, D0000-DFFFD, E0000-EFFFD +
D.2 Ranges of characters disallowed initially
0300-036F, 1DC0-1DFF, 20D0-20FF, FE20-FE2F +
Annex E
(informative) @@ -25137,12 +25912,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. #define LDBL_MIN 1E-37+Annex F
(normative) IEC 60559 floating-point arithmetic+F.1 Introduction
This annex specifies C language support for the IEC 60559 floating-point standard. The @@ -25164,6 +25941,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. specifications. +
F.2 Types
The C floating types match the IEC 60559 formats as follows: @@ -25192,6 +25970,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. all double values. +
F.2.1 Infinities, signed zeros, and NaNs
This specification does not define the behavior of signaling NaNs.346) It generally uses @@ -25203,6 +25982,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. sufficient for closure of the arithmetic. +
F.3 Operators and functions
C operators and functions provide IEC 60559 required and recommended facilities as @@ -25284,6 +26064,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. macros defined in 7.12.3 do not distinguish signaling from quiet NaNs). +
F.4 Floating to integer conversion
If the integer type is _Bool, 6.3.1.2 applies and no floating-point exceptions are raised @@ -25303,6 +26084,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. <math.h>. +
F.5 Binary-decimal conversion
Conversion from the widest supported IEC 60559 format to decimal with @@ -25330,6 +26112,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. DBL_DIG are 18 and 15, respectively, for these formats.) +
F.6 The return statement
If the return expression is evaluated in a floating-point format different from the return type, the expression is converted as if by assignment349) to the return type of the function @@ -25339,6 +26122,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.349) Assignment removes any extra range and precision. +
F.7 Contracted expressions
A contracted expression is correctly rounded (once) and treats infinities, NaNs, signed @@ -25349,6 +26133,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. A contracted expression should raise floating-point exceptions in a manner generally consistent with the basic arithmetic operations. * +
F.8 Floating-point environment
The floating-point environment defined in <fenv.h> includes the IEC 60559 floating- @@ -25360,6 +26145,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
350) This specification does not require dynamic rounding precision nor trap enablement modes. +
F.8.1 Environment management
IEC 60559 requires that floating-point operations implicitly raise floating-point exception @@ -25379,6 +26165,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. which allows certain optimizations (see F.9). +
F.8.2 Translation
During translation the IEC 60559 default modes are in effect: @@ -25400,6 +26187,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. strtod, provide execution-time conversion of numeric strings. +
F.8.3 Execution
At program startup the floating-point environment is initialized as prescribed by @@ -25412,6 +26200,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
An arithmetic constant expression of floating type, other than one in an initializer for an @@ -25454,6 +26243,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
All computation for automatic initialization is done (as if) at execution time; thus, it is @@ -25502,6 +26292,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. could be done at translation time, regardless of the expression evaluation method. +
Operations defined in 6.5 and functions and macros defined for the standard libraries @@ -25514,11 +26305,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. ''inexact'', or ''underflow'' and ''inexact''), then ''overflow'' or ''underflow'' is raised before ''inexact''. +
This section identifies code transformations that might subvert IEC 60559-specified behavior, and others that do not. +
Floating-point arithmetic operations and external function calls may entail side effects @@ -25554,6 +26347,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. if (0 < n) x + 1; +
x/2 <-> x x 0.5 Although similar transformations involving inexact constants @@ -25622,6 +26416,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. for complex z. +
x != x -> false The expression x != x is true if x is a NaN. @@ -25680,6 +26475,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
The implementation shall honor floating-point exceptions raised by execution-time @@ -25695,6 +26491,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
357) 0 - 0 yields -0 instead of +0 just when the rounding direction is downward. +
This subclause contains specifications of <math.h> facilities that are particularly suited @@ -25758,8 +26555,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. avoiding them would be too costly. +
When the correct result is representable in the range of the return type, the returned value @@ -25941,10 +26759,12 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. unspecified and the ''invalid'' floating-point exception is raised. +
On a binary system, ldexp(x, exp) is equivalent to scalbn(x, exp). +
The returned value is exact and is independent of the current rounding direction mode. +
sqrt is fully specified as a basic arithmetic operation in IEC 60559. The returned value is dependent on the current rounding direction mode. +
The nearbyint functions use IEC 60559 rounding according to the current rounding @@ -26185,11 +27026,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The rint functions differ from the nearbyint functions only in that they do raise the ''inexact'' floating-point exception if the result differs in value from the argument. +
The lrint and llrint functions provide floating-to-integer conversion as prescribed @@ -26199,6 +27042,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. exception and the result differs from the argument, they raise the ''inexact'' floating-point exception. +
The lround and llround functions differ from the lrint and llrint functions @@ -26238,6 +27083,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. 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. +
The trunc functions use IEC 60559 rounding toward zero (regardless of the current @@ -26251,8 +27097,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. functions may, but are not required to, raise the ''inexact'' floating-point exception for finite non-integer arguments. +
The remainder functions are fully specified as a basic arithmetic operation in @@ -26288,6 +27137,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. When subnormal results are supported, the returned value is exact and is independent of the current rounding direction mode. +
The remquo functions follow the specifications for the remainder functions. They @@ -26296,20 +27146,24 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. When subnormal results are supported, the returned value is exact and is independent of the current rounding direction mode. +
copysign is specified in the Appendix to IEC 60559.
The returned value is exact and is independent of the current rounding direction mode. +
All IEC 60559 implementations support quiet NaNs, in all floating formats.
The returned value is exact and is independent of the current rounding direction mode. +
No additional requirements beyond those on nextafter. @@ -26330,12 +27185,15 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. current rounding direction mode. +
No additional requirements. +
If just one argument is a NaN, the fmax functions return the other argument (if both @@ -26354,14 +27212,17 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. return +0; however, implementation in software might be impractical. +
The fmin functions are analogous to the fmax functions (see F.10.9.2).
The returned value is exact and is independent of the current rounding direction mode. +
Relational operators and their corresponding comparison macros (7.12.14) produce @@ -26390,12 +27252,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. operands of relational operators to their semantic types. +
(normative) IEC 60559-compatible complex arithmetic+
This annex supplements annex F to specify complex arithmetic for compatibility with @@ -26407,6 +27271,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. to these specifications. +
There is a new keyword _Imaginary, which is used to specify imaginary types. It is @@ -26426,6 +27291,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The imaginary type domain comprises the imaginary types. +
A complex or imaginary value with at least one infinite part is regarded as an infinity @@ -26438,13 +27304,16 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Conversions among imaginary types follow rules analogous to those for real floating types. +
When a value of imaginary type is converted to a real type other than _Bool,363) the @@ -26457,6 +27326,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
When a value of imaginary type is converted to a complex type, the real part of the @@ -26467,6 +27337,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. complex value is discarded and the value of the imaginary part is converted according to the conversion rules for the corresponding real types. +
The following subclauses supplement 6.5 in order to specify the type of the result for an @@ -26484,6 +27355,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Semantics
@@ -26665,6 +27537,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. (at least where the state for CX_LIMITED_RANGE is ''off''). +
Semantics
@@ -26690,6 +27563,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. x + iy (x (+-) u) + iy x + i(y (+-) v) (x (+-) u) + i(y (+-) v) +
The macros @@ -26765,8 +27639,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. other part is a NaN. +
The cpow functions raise floating-point exceptions if appropriate for the calculation of @@ -26986,6 +27874,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. implementations that treat special cases more carefully. +
Type-generic macros that accept complex arguments also accept imaginary arguments. If @@ -27035,29 +27925,34 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. atanh(iy) = i atan(y) +
(informative) Language independent arithmetic+
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 (annex F) in that it covers integer and diverse floating-point arithmetics. +
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 5.2.8). +
The LIA-1 data type Boolean is implemented by the C data type bool with values of true and false, all from <stdbool.h>. +
The signed C integer types int, long int, long long int, and the corresponding @@ -27079,6 +27974,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. is always 0 for the unsigned types, and is not provided for those types. +
The integer operations on integer types are the following: @@ -27097,6 +27993,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. geqI x >= y where x and y are expressions of the same integer type. +
The C floating-point types float, double, and long double are compatible with @@ -27106,6 +28003,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. operations (see annex F) along with IEC 60559 status flags and traps has LIA-1 conformant types. +
The parameters for a floating point data type can be accessed by the following: @@ -27121,6 +28019,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. epsilon FLT_EPSILON, DBL_EPSILON, LDBL_EPSILON rnd_style FLT_ROUNDS +
The floating-point operations on floating-point types are the following: @@ -27146,6 +28045,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. where x and y are expressions of the same floating point type, n is of type int, and li is of type long int. +
The C Standard requires all floating types to use the same radix and rounding style, so @@ -27159,6 +28059,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. 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. +
The LIA-1 type conversions are the following type casts: @@ -27198,6 +28099,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. implementation uses round-to-nearest. +
Notification is the process by which a user or program is informed that an exceptional @@ -27205,6 +28107,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. allows an implementation to cause a notification to occur when any arithmetic operation returns an exceptional value as defined in LIA-1 clause 5. +
LIA-1 requires at least the following two alternatives for handling of notifications: @@ -27225,6 +28128,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. math library function calls. User-provided signal handlers for SIGFPE allow for trap- and-resume behavior with the same constraint. +
C's <fenv.h> status flags are compatible with the LIA-1 indicators. @@ -27250,6 +28154,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. This documentation makes that distinction because <fenv.h> covers only the floating- point indicators. +
C is compatible with LIA-1's trap requirements for arithmetic operations, but not for @@ -27268,6 +28173,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. it) or trap-and-resume, at the programmer's option. +
(informative) @@ -27313,6 +28219,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +Annex J
(informative) @@ -27322,6 +28229,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. This annex collects some information about portability that appears in this International Standard. +J.1 Unspecified behavior
The following are unspecified: @@ -27436,6 +28344,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. G.6.2.4, G.6.2.5, G.6.2.6, G.6.3.1, G.6.4.2). +
J.2 Undefined behavior
The behavior is undefined in the following circumstances: @@ -27915,12 +28824,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. (7.29.3.2.1). +
J.3 Implementation-defined behavior
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: +
J.3.1 Translation
The following characteristics of a hosted environment are locale-specific and are required @@ -28243,6 +29167,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
The following extensions are widely used in many systems, but are not portable to all @@ -28251,6 +29176,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. extensions are new keywords, extra library functions declared in standard headers, or predefined macros with names that do not begin with an underscore. +
In a hosted environment, the main function receives a third argument, char *envp[], @@ -28258,27 +29184,32 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. that provides information about the environment for this execution of the program (5.1.2.2.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 (6.4.2). +
All characters in identifiers (with or without external linkage) are significant (6.4.2). +
A function identifier, or the identifier of an object the declaration of which contains the keyword extern, has file scope (6.2.1). +
String literals are modifiable (in which case, identical string literals should denote distinct objects) (6.4.5). +
Additional arithmetic types, such as __int128 or double double, and their @@ -28286,6 +29217,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. 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 pointer to an object or to void may be cast to a pointer to a function, allowing data to @@ -28294,17 +29226,20 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. 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) (6.5.4). +
A bit-field may be declared with a type other than _Bool, unsigned int, or signed int, with an appropriate maximum width (6.7.2.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 (6.7.4). +
The asm keyword may be used to insert assembly language directly into the translator @@ -28313,12 +29248,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. asm ( character-string-literal ); +
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 (6.9.2). +
Macro names that do not begin with an underscore, describing the translation and @@ -28326,17 +29263,20 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. (6.10.8). +
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 7.22.4.4), the implementation writes some diagnostics indicating the fact to the stderr stream, if it is still open, +
Handlers for specific signals are called with extra arguments in addition to the signal number (7.14.1.1). +
Additional mappings from files to streams are supported (7.21.2). @@ -28344,12 +29284,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. Additional file-opening modes may be specified by characters appended to the mode argument of the fopen function (7.21.5.3). +
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 (7.21.7.10, 7.28.3.10). +
Functions declared in <complex.h> and <math.h> raise SIGFPE to report errors @@ -28357,12 +29299,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. 7.12). +
(normative) Bounds-checking interfaces+
Traditionally, the C Library has contained many functions that trust the programmer to @@ -28397,6 +29341,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. change if the function is called again, perhaps by another thread. +
This annex specifies a series of optional extensions that can be useful in the mitigation of @@ -28414,10 +29359,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. specifications. +
The functions, macros, and types declared or defined in K.3 and its subclauses are not @@ -28454,6 +29402,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. implementation is not conforming. +
Each macro name in any of the following subclauses is reserved for use as specified if it @@ -28468,11 +29417,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. as a macro name and as an identifier with file scope in the same name space if it is defined by any of its associated headers when included. +
An implementation may set errno for the functions defined in this annex, but is not required to. +
Most functions in this annex include as part of their specification a list of runtime- @@ -28507,6 +29458,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. from the definition of undefined behavior. +
The header <errno.h> defines a type. @@ -28523,6 +29475,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. errno might be declared as having the return type errno_t. +
The header <stddef.h> defines a type. @@ -28537,6 +29490,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
372) See the description of the RSIZE_MAX macro in <stdint.h>. +
The header <stdint.h> defines a macro. @@ -28569,6 +29523,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
373) The macro RSIZE_MAX need not expand to a constant expression. +
The header <stdio.h> defines several macros and two types. @@ -28596,8 +29551,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. which is the type size_t. +
Synopsis
@@ -28634,6 +29591,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The tmpfile_s function returns zero if it created the file. If it did not create the file or there was a runtime-constraint violation, tmpfile_s returns a nonzero value. +
Synopsis
@@ -28698,8 +29656,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. convention for temporary files), but this is not required. +
Synopsis
@@ -28792,6 +29752,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
376) These are the same permissions that the file would have been created with by fopen. +
Synopsis
@@ -28835,12 +29796,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. there was a runtime-constraint violation, freopen_s returns a nonzero value. +
Unless explicitly stated otherwise, if the execution of a function described in this subclause causes copying to take place between objects that overlap, the objects take on unspecified values. +
Synopsis
@@ -28884,6 +29847,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. constraint violation. +
Synopsis
@@ -28971,6 +29935,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. compatible with rsize_t. +
Synopsis
@@ -29006,6 +29971,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. format string was %%n. +
Synopsis
@@ -29033,6 +29999,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. scanf_s function returns the number of input items assigned, which can be fewer than provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -29075,6 +30042,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. format string was %%n. +
Synopsis
@@ -29120,6 +30088,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. format string was %%n. +
Synopsis
@@ -29151,6 +30120,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -29187,6 +30157,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. format string was %%n. +
Synopsis
@@ -29230,6 +30201,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. indeterminate. +
Synopsis
@@ -29266,6 +30238,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. format string was %%n. +
Synopsis
@@ -29308,6 +30281,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. indeterminate. +
Synopsis
@@ -29356,6 +30330,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. format string was %%n. +
Synopsis
@@ -29404,6 +30379,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. format string was %%n. +
Synopsis
@@ -29442,8 +30418,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. indeterminate. +
Synopsis
@@ -29502,6 +30480,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. expect such a relationship. +
The header <stdlib.h> defines three types. @@ -29526,8 +30505,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. errno_t error); +
Synopsis
@@ -29571,6 +30552,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. pointer argument, a pointer to the implementation default handler is returned (not NULL). +
Synopsis
@@ -29603,6 +30585,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
393) Many implementations invoke a debugger when the abort function is called. +
Synopsis
@@ -29631,8 +30614,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. library function returns a nonzero errno_t). +
Synopsis
@@ -29674,6 +30659,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The getenv_s function returns zero if the specified name is found and the associated string was successfully stored in value. Otherwise, a nonzero value is returned. +
These utilities make use of a comparison function to search or sort arrays of unspecified @@ -29716,6 +30702,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -29768,6 +30755,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. example, it might specify a collating sequence used by the comparison function. +
Synopsis
@@ -29815,6 +30803,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. example, it might specify a collating sequence used by the comparison function. +
The behavior of the multibyte character functions is affected by the LC_CTYPE category @@ -29831,6 +30820,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. character codes, but are grouped with an adjacent multibyte character. +
Synopsis
@@ -29883,11 +30873,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The wctomb_s function returns zero if successful, and a nonzero value if there was a runtime-constraint violation or wc did not correspond to a valid multibyte character. +
The behavior of the multibyte string functions is affected by the LC_CTYPE category of the current locale. +
Synopsis
@@ -29947,6 +30939,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. terminating null character did not occur where required. +
Synopsis
@@ -30025,6 +31018,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. runtime-constraint violation. +
The header <string.h> defines two types. @@ -30039,8 +31033,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. which is the type size_t. +
Synopsis
@@ -30069,6 +31065,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. Otherwise, a nonzero value is returned. +
Synopsis
@@ -30098,6 +31095,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The memmove_s function returns zero if there was no runtime-constraint violation. Otherwise, a nonzero value is returned. +
Synopsis
@@ -30140,6 +31138,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. within the array pointed to by s1 and that the result in s1 is null terminated. +
Synopsis
@@ -30207,8 +31206,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. within the array pointed to by s1 and that the result in s1 is null terminated. +
Synopsis
@@ -30261,6 +31262,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. appended to the string pointed to by s1 and that the result in s1 is null terminated. +
Synopsis
@@ -30342,8 +31344,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. appended to the string pointed to by s1 and that the result in s1 is null terminated. +
Synopsis
@@ -30420,8 +31424,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -30452,6 +31458,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The memset_s function returns zero if there was no runtime-constraint violation. Otherwise, a nonzero value is returned. +
Synopsis
@@ -30488,6 +31495,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. function returns a nonzero value. +
Synopsis
@@ -30505,6 +31513,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The strerrorlen_s function returns the number of characters (not including the null character) in the full message string. +
Synopsis
@@ -30536,6 +31545,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. strnlen_s useful in algorithms that gracefully handle such exceptional data. +
The header <time.h> defines two types. @@ -30550,6 +31560,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. which is the type size_t. +
A broken-down time is normalized if the values of the members of the tm structure are in @@ -30559,11 +31570,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''.
415) The normal ranges are defined in 7.26.1. +
Like the strftime function, the asctime_s and ctime_s functions do not return a pointer to a static object, and other library functions are permitted to call them. +
Synopsis
@@ -30631,6 +31644,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. into the array pointed to by s. Otherwise, it returns a nonzero value. +
Synopsis
@@ -30663,6 +31677,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The ctime_s function returns zero if the time was successfully converted and stored into the array pointed to by s. Otherwise, it returns a nonzero value. +
Synopsis
@@ -30688,6 +31703,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The gmtime_s function returns result, or a null pointer if the specified time cannot be converted to UTC or there is a runtime-constraint violation. +
Synopsis
@@ -30712,6 +31728,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The localtime_s function returns result, or a null pointer if the specified time cannot be converted to local time or there is a runtime-constraint violation. +
The header <wchar.h> defines two types. @@ -30731,8 +31748,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. unspecified values. +
Synopsis
@@ -30767,6 +31786,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. example, if the entire format string was L"%%n". +
Synopsis
@@ -30820,6 +31840,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. compatible with rsize_t. +
Synopsis
@@ -30864,6 +31885,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. example, if the entire format string was L"%%n". +
Synopsis
@@ -30909,6 +31931,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. example, if the entire format string was L"%%n". +
Synopsis
@@ -30940,6 +31963,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. than provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -30977,6 +32001,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. example, if the entire format string was L"%%n". +
Synopsis
@@ -31018,6 +32043,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. value of arg after the return is indeterminate. +
Synopsis
@@ -31064,6 +32090,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. example, if the entire format string was L"%%n". +
Synopsis
@@ -31111,6 +32138,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. example, if the entire format string was L"%%n". +
Synopsis
@@ -31153,6 +32181,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. value of arg after the return is indeterminate. +
Synopsis
@@ -31192,6 +32221,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. example, if the entire format string was L"%%n". +
Synopsis
@@ -31228,6 +32258,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. value of arg after the return is indeterminate. +
Synopsis
@@ -31262,6 +32293,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. example, if the entire format string was L"%%n". +
Synopsis
@@ -31290,10 +32322,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. provided for, or even zero, in the event of an early matching failure. +
Synopsis
@@ -31340,6 +32375,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. fit within the array pointed to by s1 and that the result in s1 is null terminated. +
Synopsis
@@ -31410,6 +32446,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. fit within the array pointed to by s1 and that the result in s1 is null terminated. +
Synopsis
@@ -31440,6 +32477,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. Otherwise, a nonzero value is returned. +
Synopsis
@@ -31469,8 +32507,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The wmemmove_s function returns zero if there was no runtime-constraint violation. Otherwise, a nonzero value is returned. +
Synopsis
@@ -31519,6 +32559,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. s2 were appended to the wide string pointed to by s1 and that the result in s1 is null terminated. +
Synopsis
@@ -31601,8 +32642,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. s2 were appended to the wide string pointed to by s1 and that the result in s1 is null terminated. +
Synopsis
@@ -31680,8 +32723,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
Synopsis
@@ -31709,13 +32754,16 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. wcsnlen_s useful in algorithms that gracefully handle such exceptional data. +
Unlike wcrtomb, wcrtomb_s does not permit the ps parameter (the pointer to the conversion state) to be a null pointer. +
Synopsis
@@ -31765,11 +32813,13 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. The wcrtomb_s function returns zero if no runtime-constraint violation and no encoding error occurred. Otherwise, a nonzero value is returned. +
Unlike mbsrtowcs and wcsrtombs, mbsrtowcs_s and wcsrtombs_s do not permit the ps parameter (the pointer to the conversion state) to be a null pointer. +
Synopsis
@@ -31839,6 +32889,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. terminating null character did not occur where required. +
Synopsis
@@ -31930,12 +32981,14 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. runtime-constraint violation. +
(normative) Analyzability+
This annex specifies optional behavior that can aid in the analyzability of C programs. @@ -31948,8 +33001,10 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. specifications. +
out-of-bounds store @@ -31957,6 +33012,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. modify (or, for an object declared volatile, fetch) one or more bytes that lie outside the bounds permitted by this Standard. +
bounded undefined behavior @@ -31968,6 +33024,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. NOTE 2 Any values produced or stored might be indeterminate values. +
critical undefined behavior @@ -31980,6 +33037,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
If the program performs a trap (3.19.5), the implementation is permitted to invoke a @@ -32005,6 +33063,7 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. +
[^ x ^], 3.20 , (comma operator), 5.1.2.4, 6.5.17 @@ -33434,4 +34494,5 @@ margin: deleted text is marked with ''*'', new or changed text with '' ''. WINT_MIN macro, 7.20.3 wint_t type, 7.20.3, 7.21.6.1, 7.28.1, 7.28.2.1,+