X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=n1548.html;h=d09b7a6e5b7a833b1fb587eaf53078a974c9e45c;hb=d1af4fc376749aa3bb0386727923e975680be227;hp=50e2b6ef3e647e15fe08b8b96c552fa6748cb4ff;hpb=643b668e5d03588b08459174b3bed69e31f97b7b;p=c-standard diff --git a/n1548.html b/n1548.html index 50e2b6e..d09b7a6 100644 --- a/n1548.html +++ b/n1548.html @@ -1248,7 +1248,7 @@ preprocessing directives (6.10), trigraph sequences (2.0, which has type double). + were replaced by the constant 2.0, which has type double). 13 EXAMPLE 4 Implementations employing wide registers have to take care to honor appropriate semantics. Values are independent of whether they are represented in a register or in memory. For @@ -1271,8 +1271,8 @@ preprocessing directives (6.10), trigraph sequences (1.0 + y); - y = x / 5.0; // not equivalent to y = x * 0.2; + z = x + x * y; // not equivalent to z = x * (1.0 + y); + y = x / 5.0; // not equivalent to y = x * 0.2; 15 EXAMPLE 6 To illustrate the grouping behavior of expressions, in the following fragment int a, b; @@ -2146,7 +2146,7 @@ Forward references: conditional inclusion (6.10.1), (6.7.2.3), the goto statement (6.8.6.1). 30) A function declaration can contain the storage-class specifier static only if it is at file scope; see - 6.7.1. + 6.7.1. 31) As specified in 6.2.1, the later declaration might hide the prior declaration. 32) There is only one name space for tags even though three are possible. @@ -2155,7 +2155,7 @@ Forward references: conditional inclusion (6.10.1), 6.2.4 Storage durations of objects 1 An object has a storage duration that determines its lifetime. There are four storage durations: static, thread, automatic, and allocated. Allocated storage is described in - 7.22.3. + 7.22.3. 2 The lifetime of an object is the portion of program execution during which storage is guaranteed to be reserved for it. An object exists, has a constant address,33) and retains its last-stored value throughout its lifetime.34) If an object is referred to outside of its @@ -3737,7 +3737,7 @@ Forward references: conditional inclusion (6.10.1), object (in which case it is an lvalue) or a function (in which case it is a function designator).91) 3 A constant is a primary expression. Its type depends on its form and value, as detailed in - 6.4.4. + 6.4.4. 4 A string literal is a primary expression. It is an lvalue with type as detailed in 6.4.5. 5 A parenthesized expression is a primary expression. Its type and value are identical to those of the unparenthesized expression. It is an lvalue, a function designator, or a void @@ -5665,11 +5665,11 @@ Forward references: conditional inclusion (6.10.1), extern creates an external definition. The following example shows an entire translation unit. inline double fahr(double t) { - return (9.0 * t) / 5.0 + 32.0; + return (9.0 * t) / 5.0 + 32.0; } inline double cels(double t) { - return (5.0 * (t - 32.0)) / 9.0; + return (5.0 * (t - 32.0)) / 9.0; } extern double fahr(double); // creates an external definition double convert(int is_fahr, double temp) @@ -6337,7 +6337,7 @@ Forward references: conditional inclusion (6.10.1), 24 EXAMPLE 1 Provided that <complex.h> has been #included, the declarations int i = 3.5; double complex c = 5 + 3 * I; - define and initialize i with the value 3 and c with the value 5.0 + i3.0. + define and initialize i with the value 3 and c with the value 5.0 + i3.0. 25 EXAMPLE 2 The declaration int x[] = { 1, 3, 5 }; @@ -11822,7 +11822,7 @@ Forward references: localization (7.11). 7.20.2 Limits of specified-width integer types 1 The following object-like macros specify the minimum and maximum limits of the types * declared in <stdint.h>. Each macro name corresponds to a similar type name in - 7.20.1. + 7.20.1. 2 Each instance of any defined macro shall be replaced by a constant expression suitable for use in #if preprocessing directives, and this expression shall have the same type as would an expression that is an object of the corresponding type converted according to @@ -12756,7 +12756,7 @@ s If no l length modifier is present, the argument shall be a pointe int day, hour, min; fprintf(stdout, "%s, %s %d, %.2d:%.2d\n", weekday, month, day, hour, min); - fprintf(stdout, "pi = %.5f\n", 4 * atan(1.0)); + fprintf(stdout, "pi = %.5f\n", 4 * atan(1.0)); 17 EXAMPLE 2 In this example, multibyte characters do not have a state-dependent encoding, and the members of the extended character set that consist of more than one byte each consist of exactly two bytes, @@ -16224,7 +16224,7 @@ p The argument shall be a pointer to void. The value of the pointer i int day, hour, min; fwprintf(stdout, L"%ls, %ls %d, %.2d:%.2d\n", weekday, month, day, hour, min); - fwprintf(stdout, L"pi = %.5f\n", 4 * atan(1.0)); + fwprintf(stdout, L"pi = %.5f\n", 4 * atan(1.0)); Forward references: the btowc function (7.28.6.1.1), the mbrtowc function (7.28.6.3.2). @@ -20141,11 +20141,11 @@ n No input is consumed. The corresponding argument shall be a pointer conversion is subject to default rounding modes and raises no execution-time floating-point exceptions (even where the state of the FENV_ACCESS pragma is ''on''). Library functions, for example strtod, provide execution-time conversion of numeric strings. - 353) Where the state for the FENV_ACCESS pragma is ''on'', results of inexact expressions like 1.0/3.0 + 353) Where the state for the FENV_ACCESS pragma is ''on'', results of inexact expressions like 1.0/3.0 are affected by rounding modes set at execution time, and expressions such as 0.0/0.0 and - 1.0/0.0 generate execution-time floating-point exceptions. The programmer can achieve the + 1.0/0.0 generate execution-time floating-point exceptions. The programmer can achieve the efficiency of translation-time evaluation through static initialization, such as - const static double one_third = 1.0/3.0; + const static double one_third = 1.0/3.0; [page 508] (Contents) @@ -20249,7 +20249,7 @@ n No input is consumed. The corresponding argument shall be a pointer IEC 60559 machines and others that round perfectly. 1 x x and x/1 (->) x The expressions 1 x x, x/1, and x are equivalent (on IEC 60559 machines, among others).355) - x/x (->) 1.0 The expressions x/x and 1.0 are not equivalent if x can be zero, + x/x (->) 1.0 The expressions x/x and 1.0 are not equivalent if x can be zero, infinite, or NaN. x - y (<->) x + (-y) The expressions x - y, x + (-y), and (-y) + x are equivalent (on IEC 60559 machines, among others). @@ -20959,16 +20959,16 @@ n No input is consumed. The corresponding argument shall be a pointer int recalc = 0; if ( isinf(a) || isinf(b) ) { // z is infinite /* "Box" the infinity and change NaNs in the other factor to 0 */ - a = copysign(isinf(a) ? 1.0 : 0.0, a); - b = copysign(isinf(b) ? 1.0 : 0.0, b); + a = copysign(isinf(a) ? 1.0 : 0.0, a); + b = copysign(isinf(b) ? 1.0 : 0.0, b); if (isnan(c)) c = copysign(0.0, c); if (isnan(d)) d = copysign(0.0, d); recalc = 1; } if ( isinf(c) || isinf(d) ) { // w is infinite /* "Box" the infinity and change NaNs in the other factor to 0 */ - c = copysign(isinf(c) ? 1.0 : 0.0, c); - d = copysign(isinf(d) ? 1.0 : 0.0, d); + c = copysign(isinf(c) ? 1.0 : 0.0, c); + d = copysign(isinf(d) ? 1.0 : 0.0, d); if (isnan(a)) a = copysign(0.0, a); if (isnan(b)) b = copysign(0.0, b); recalc = 1; @@ -21024,15 +21024,15 @@ n No input is consumed. The corresponding argument shall be a pointer } else if ((isinf(a) || isinf(b)) && isfinite(c) && isfinite(d)) { - a = copysign(isinf(a) ? 1.0 : 0.0, a); - b = copysign(isinf(b) ? 1.0 : 0.0, b); + a = copysign(isinf(a) ? 1.0 : 0.0, a); + b = copysign(isinf(b) ? 1.0 : 0.0, b); x = INFINITY * ( a * c + b * d ); y = INFINITY * ( b * c - a * d ); } else if (isinf(logbw) && isfinite(a) && isfinite(b)) { - c = copysign(isinf(c) ? 1.0 : 0.0, c); - d = copysign(isinf(d) ? 1.0 : 0.0, d); + c = copysign(isinf(c) ? 1.0 : 0.0, c); + d = copysign(isinf(d) ? 1.0 : 0.0, d); x = 0.0 * ( a * c + b * d ); y = 0.0 * ( b * c - a * d ); @@ -21433,7 +21433,7 @@ n No input is consumed. The corresponding argument shall be a pointer divF x / y negF -x absF fabsf(x), fabs(x), fabsl(x) - exponentF 1.f+logbf(x), 1.0+logb(x), 1.L+logbl(x) + exponentF 1.f+logbf(x), 1.0+logb(x), 1.L+logbl(x) scaleF scalbnf(x, n), scalbn(x, n), scalbnl(x, n), scalblnf(x, li), scalbln(x, li), scalblnl(x, li) intpartF modff(x, &y), modf(x, &y), modfl(x, &y)