diff --git a/info/c.info b/info/c.info index fda081f8..1deb66ec 100644 --- a/info/c.info +++ b/info/c.info @@ -1,4 +1,4 @@ -This is c.info, produced by makeinfo version 6.8 from c.texi. +This is c.info, produced by makeinfo version 7.0.1 from c.texi. Copyright © 2022 Richard Stallman and Free Software Foundation, Inc. @@ -2102,7 +2102,7 @@ you can store the entire date in a single integer ‘date’: unsigned int d = 12; unsigned int m = 6; unsigned int y = 1983; - unsigned int date = ((y << 4) + m) << 5) + d; + unsigned int date = (((y << 4) + m) << 5) + d; To extract the original day, month, and year out of ‘date’, use a combination of shift and remainder. @@ -16325,328 +16325,328 @@ Concept Index  Tag Table: -Node: Top966 -Node: The First Example23431 -Node: Recursive Fibonacci24162 -Node: Function Header27188 -Node: Function Body27723 -Node: Stack31269 -Node: Iterative Fibonacci33328 -Node: Complete Program39024 -Node: Complete Example39813 -Node: Complete Explanation40553 -Node: Complete Line-by-Line43978 -Node: Compile Example45535 -Node: Storage47193 -Node: Beyond Integers48225 -Node: Float Example48772 -Node: Array Example50564 -Node: Array Example Call52825 -Node: Array Example Variations55249 -Node: Lexical Syntax57400 -Node: English58379 -Node: Characters60189 -Ref: Characters-Footnote-161340 -Node: Whitespace61462 -Node: Comments63071 -Node: Identifiers65791 -Node: Operators/Punctuation67271 -Node: Line Continuation69956 -Node: Arithmetic71345 -Node: Basic Arithmetic73657 -Node: Integer Arithmetic74906 -Node: Integer Overflow77400 -Node: Unsigned Overflow78339 -Node: Signed Overflow79548 -Node: Mixed Mode81697 -Node: Division and Remainder83057 -Node: Numeric Comparisons85521 -Node: Shift Operations86761 -Node: Bits Shifted In87736 -Node: Shift Caveats89098 -Node: Shift Hacks90492 -Node: Bitwise Operations91411 -Node: Assignment Expressions94532 -Node: Simple Assignment96917 -Node: Lvalues98357 -Node: Modifying Assignment99941 -Node: Increment/Decrement101731 -Node: Postincrement/Postdecrement103119 -Node: Assignment in Subexpressions105450 -Node: Write Assignments Separately106898 -Node: Execution Control Expressions108122 -Node: Logical Operators108817 -Node: Logicals and Comparison110977 -Node: Logicals and Assignments112230 -Node: Conditional Expression113777 -Node: Conditional Rules114281 -Node: Conditional Branches115566 -Node: Comma Operator117544 -Node: Uses of Comma118225 -Node: Clean Comma119223 -Node: Avoid Comma120457 -Node: Binary Operator Grammar121356 -Ref: Binary Operator Grammar-Footnote-1124582 -Node: Order of Execution124947 -Node: Reordering of Operands125985 -Node: Associativity and Ordering126856 -Node: Sequence Points128448 -Node: Postincrement and Ordering130274 -Node: Ordering of Operands131702 -Node: Optimization and Ordering133397 -Node: Primitive Types134432 -Node: Integer Types135262 -Node: Basic Integers136195 -Node: Signed and Unsigned Types137668 -Ref: Signed and Unsigned Types-Footnote-1138826 -Node: Narrow Integers139142 -Node: Integer Conversion140573 -Node: Boolean Type141957 -Node: Integer Variations142464 -Node: Floating-Point Data Types144272 -Node: Complex Data Types146700 -Ref: Complex Data Types-Footnote-1148743 -Node: The Void Type148929 -Node: Other Data Types149750 -Node: Type Designators150537 -Node: Constants152591 -Node: Integer Constants153796 -Node: Integer Const Type155521 -Node: Floating Constants156947 -Node: Imaginary Constants159111 -Node: Invalid Numbers160708 -Node: Character Constants161438 -Node: String Constants164027 -Node: UTF-8 String Constants167815 -Node: Unicode Character Codes168683 -Node: Wide Character Constants170262 -Node: Wide String Constants172171 -Node: Type Size174682 -Node: Pointers177207 -Node: Address of Data179251 -Node: Pointer Types180229 -Node: Pointer Declarations180792 -Node: Pointer Type Designators182195 -Node: Pointer Dereference183253 -Node: Null Pointers184398 -Node: Invalid Dereference185679 -Node: Void Pointers186938 -Node: Pointer Comparison189305 -Node: Pointer Arithmetic190866 -Node: Pointers and Arrays194597 -Node: Low-Level Pointer Arithmetic196398 -Node: Pointer Increment/Decrement198317 -Node: Pointer Arithmetic Drawbacks201969 -Node: Pointer-Integer Conversion203492 -Node: Printing Pointers204744 -Node: Structures205241 -Node: Referencing Fields210228 -Node: Arrays as Fields211642 -Node: Dynamic Memory Allocation212528 -Node: Field Offset214865 -Node: Structure Layout215405 -Node: Packed Structures217815 -Node: Bit Fields218898 -Node: Bit Field Packing220530 -Node: const Fields222570 -Node: Zero Length223864 -Node: Flexible Array Fields224673 -Node: Overlaying Structures226245 -Node: Structure Assignment227573 -Node: Unions229356 -Node: Packing With Unions231810 -Node: Cast to Union233573 -Node: Structure Constructors234736 -Node: Unnamed Types as Fields236271 -Node: Incomplete Types237261 -Node: Intertwined Incomplete Types238724 -Node: Type Tags239641 -Node: Arrays242311 -Node: Accessing Array Elements243831 -Node: Declaring an Array245512 -Node: Strings247267 -Node: Array Type Designators249837 -Node: Incomplete Array Types250405 -Node: Limitations of C Arrays251968 -Node: Multidimensional Arrays254304 -Node: Constructing Array Values257638 -Node: Arrays of Variable Length258960 -Node: Enumeration Types261597 -Node: Defining Typedef Names264771 -Node: Statements267486 -Node: Expression Statement269511 -Node: if Statement270722 -Node: if-else Statement271552 -Node: Blocks272467 -Node: return Statement274965 -Node: Loop Statements275796 -Node: while Statement276897 -Node: do-while Statement277905 -Node: break Statement278610 -Node: for Statement280143 -Node: Example of for281195 -Node: Omitted for-Expressions282342 -Node: for-Index Declarations284161 -Node: continue Statement285175 -Node: switch Statement286683 -Node: switch Example289267 -Node: Duffs Device290782 -Node: Case Ranges292018 -Node: Null Statement292689 -Node: goto Statement293266 -Node: Local Labels297021 -Node: Labels as Values300141 -Ref: Labels as Values-Footnote-1301027 -Node: Label Value Uses301223 -Node: Label Value Caveats302504 -Node: Statement Exprs303961 -Node: Variables306020 -Node: Variable Declarations308226 -Node: Declaring Arrays and Pointers309792 -Node: Combining Variable Declarations310968 -Node: Initializers311919 -Node: Designated Inits315075 -Node: Auto Type317778 -Node: Local Variables318996 -Ref: Local Variables-Footnote-1320766 -Node: File-Scope Variables320883 -Node: Static Local Variables322239 -Node: Extern Declarations323360 -Node: Allocating File-Scope325381 -Node: auto and register327106 -Node: Omitting Types327935 -Node: Type Qualifiers328398 -Node: const329502 -Node: volatile331774 -Node: restrict Pointers333937 -Node: restrict Pointer Example335594 -Node: Functions337627 -Node: Function Definitions338606 -Node: Function Parameter Variables339622 -Node: Forward Function Declarations342181 -Node: Static Functions343116 -Node: Arrays as Parameters344390 -Node: Array Parm Pointer344869 -Node: Passing Array Args346079 -Node: Array Parm Qualifiers348366 -Node: Structs as Parameters349877 -Node: Function Declarations351362 -Node: Function Calls355126 -Node: Function Call Semantics356475 -Node: Function Pointers358099 -Node: Declaring Function Pointers359090 -Node: Assigning Function Pointers361233 -Node: Calling Function Pointers362266 -Node: The main Function363189 -Node: Values from main364830 -Node: Command-line Parameters366051 -Node: Environment Variables367425 -Node: Advanced Definitions368918 -Node: Variable-Length Array Parameters369600 -Node: Variable Number of Arguments371781 -Node: Nested Functions375886 -Node: Inline Function Definitions380541 -Node: Obsolete Definitions384606 -Node: Old GNU Inlining385079 -Node: Old-Style Function Definitions386053 -Node: Compatible Types388017 -Ref: Compatible Types-Footnote-1390653 -Node: Type Conversions390688 -Node: Explicit Type Conversion391358 -Node: Assignment Type Conversions392962 -Node: Argument Promotions394751 -Ref: Argument Promotions-Footnote-1395799 -Node: Operand Promotions396023 -Node: Common Type396623 -Node: Scope397857 -Node: Preprocessing400930 -Node: Preproc Overview401379 -Node: Directives402990 -Node: Preprocessing Tokens404530 -Node: Header Files408773 -Node: include Syntax410956 -Node: include Operation412849 -Node: Search Path414735 -Node: Once-Only Headers417353 -Node: Computed Includes419095 -Node: Macros422287 -Node: Object-like Macros423576 -Node: Function-like Macros427544 -Node: Macro Arguments429921 -Node: Stringification434229 -Node: Concatenation437549 -Node: Variadic Macros441062 -Ref: Variadic Macros-Footnote-1445059 -Ref: Variadic Macros-Footnote-2445084 -Node: Predefined Macros445109 -Node: Undefining and Redefining Macros452265 -Node: Directives Within Macro Arguments454166 -Node: Macro Pitfalls455125 -Node: Misnesting455661 -Node: Operator Precedence Problems456783 -Node: Swallowing the Semicolon458679 -Node: Duplication of Side Effects460759 -Node: Macros and Auto Type462877 -Node: Self-Referential Macros464147 -Node: Argument Prescan466609 -Node: Conditionals470432 -Node: Conditional Uses472161 -Node: Conditional Syntax473569 -Node: ifdef473937 -Node: if477299 -Node: defined479813 -Node: else481192 -Node: elif481820 -Node: Deleted Code483263 -Node: Diagnostics484571 -Node: Line Control485783 -Node: Null Directive488066 -Node: Integers in Depth488353 -Node: Integer Representations488813 -Ref: Integer Representations-Footnote-1493050 -Node: Maximum and Minimum Values493213 -Node: Floating Point in Depth494901 -Node: Floating Representations495540 -Node: Floating Type Specs497336 -Node: Special Float Values498743 -Ref: subnormal numbers500911 -Node: Invalid Optimizations502836 -Node: Exception Flags504337 -Ref: fetestexcept505166 -Node: Exact Floating-Point505683 -Node: Rounding506748 -Node: Rounding Issues508900 -Node: Significance Loss510322 -Node: Fused Multiply-Add513423 -Node: Error Recovery515346 -Node: Exact Floating Constants518280 -Node: Handling Infinity520359 -Node: Handling NaN522211 -Node: Signed Zeros525474 -Node: Scaling by the Base526194 -Node: Rounding Control527538 -Node: Machine Epsilon529233 -Node: Complex Arithmetic534359 -Node: Round-Trip Base Conversion538018 -Node: Further Reading540157 -Node: Compilation547886 -Node: Directing Compilation550863 -Node: Pragmas551332 -Node: Pragma Basics551710 -Node: Severity Pragmas555827 -Node: Optimization Pragmas558459 -Node: Static Assertions560816 -Node: Type Alignment562664 -Node: Aliasing565835 -Node: Aliasing Alignment567409 -Node: Aliasing Length568424 -Node: Aliasing Type Rules569430 -Node: Digraphs573338 -Node: Attributes573984 -Node: Signals577021 -Node: GNU Free Documentation License578738 -Node: Symbol Index604085 -Node: Concept Index612001 +Node: Top968 +Node: The First Example23433 +Node: Recursive Fibonacci24164 +Node: Function Header27190 +Node: Function Body27725 +Node: Stack31271 +Node: Iterative Fibonacci33330 +Node: Complete Program39026 +Node: Complete Example39815 +Node: Complete Explanation40555 +Node: Complete Line-by-Line43980 +Node: Compile Example45537 +Node: Storage47195 +Node: Beyond Integers48227 +Node: Float Example48774 +Node: Array Example50566 +Node: Array Example Call52827 +Node: Array Example Variations55251 +Node: Lexical Syntax57402 +Node: English58381 +Node: Characters60191 +Ref: Characters-Footnote-161342 +Node: Whitespace61464 +Node: Comments63073 +Node: Identifiers65793 +Node: Operators/Punctuation67273 +Node: Line Continuation69958 +Node: Arithmetic71347 +Node: Basic Arithmetic73659 +Node: Integer Arithmetic74908 +Node: Integer Overflow77402 +Node: Unsigned Overflow78341 +Node: Signed Overflow79550 +Node: Mixed Mode81699 +Node: Division and Remainder83059 +Node: Numeric Comparisons85523 +Node: Shift Operations86763 +Node: Bits Shifted In87738 +Node: Shift Caveats89100 +Node: Shift Hacks90494 +Node: Bitwise Operations91414 +Node: Assignment Expressions94535 +Node: Simple Assignment96920 +Node: Lvalues98360 +Node: Modifying Assignment99944 +Node: Increment/Decrement101734 +Node: Postincrement/Postdecrement103122 +Node: Assignment in Subexpressions105453 +Node: Write Assignments Separately106901 +Node: Execution Control Expressions108125 +Node: Logical Operators108820 +Node: Logicals and Comparison110980 +Node: Logicals and Assignments112233 +Node: Conditional Expression113780 +Node: Conditional Rules114284 +Node: Conditional Branches115569 +Node: Comma Operator117547 +Node: Uses of Comma118228 +Node: Clean Comma119226 +Node: Avoid Comma120460 +Node: Binary Operator Grammar121359 +Ref: Binary Operator Grammar-Footnote-1124585 +Node: Order of Execution124950 +Node: Reordering of Operands125988 +Node: Associativity and Ordering126859 +Node: Sequence Points128451 +Node: Postincrement and Ordering130277 +Node: Ordering of Operands131705 +Node: Optimization and Ordering133400 +Node: Primitive Types134435 +Node: Integer Types135265 +Node: Basic Integers136198 +Node: Signed and Unsigned Types137671 +Ref: Signed and Unsigned Types-Footnote-1138829 +Node: Narrow Integers139145 +Node: Integer Conversion140576 +Node: Boolean Type141960 +Node: Integer Variations142467 +Node: Floating-Point Data Types144275 +Node: Complex Data Types146703 +Ref: Complex Data Types-Footnote-1148746 +Node: The Void Type148932 +Node: Other Data Types149753 +Node: Type Designators150540 +Node: Constants152594 +Node: Integer Constants153799 +Node: Integer Const Type155524 +Node: Floating Constants156950 +Node: Imaginary Constants159114 +Node: Invalid Numbers160711 +Node: Character Constants161441 +Node: String Constants164030 +Node: UTF-8 String Constants167818 +Node: Unicode Character Codes168686 +Node: Wide Character Constants170265 +Node: Wide String Constants172174 +Node: Type Size174685 +Node: Pointers177210 +Node: Address of Data179254 +Node: Pointer Types180232 +Node: Pointer Declarations180795 +Node: Pointer Type Designators182198 +Node: Pointer Dereference183256 +Node: Null Pointers184401 +Node: Invalid Dereference185682 +Node: Void Pointers186941 +Node: Pointer Comparison189308 +Node: Pointer Arithmetic190869 +Node: Pointers and Arrays194600 +Node: Low-Level Pointer Arithmetic196401 +Node: Pointer Increment/Decrement198320 +Node: Pointer Arithmetic Drawbacks201972 +Node: Pointer-Integer Conversion203495 +Node: Printing Pointers204747 +Node: Structures205244 +Node: Referencing Fields210231 +Node: Arrays as Fields211645 +Node: Dynamic Memory Allocation212531 +Node: Field Offset214868 +Node: Structure Layout215408 +Node: Packed Structures217818 +Node: Bit Fields218901 +Node: Bit Field Packing220533 +Node: const Fields222573 +Node: Zero Length223867 +Node: Flexible Array Fields224676 +Node: Overlaying Structures226248 +Node: Structure Assignment227576 +Node: Unions229359 +Node: Packing With Unions231813 +Node: Cast to Union233576 +Node: Structure Constructors234739 +Node: Unnamed Types as Fields236274 +Node: Incomplete Types237264 +Node: Intertwined Incomplete Types238727 +Node: Type Tags239644 +Node: Arrays242314 +Node: Accessing Array Elements243834 +Node: Declaring an Array245515 +Node: Strings247270 +Node: Array Type Designators249840 +Node: Incomplete Array Types250408 +Node: Limitations of C Arrays251971 +Node: Multidimensional Arrays254307 +Node: Constructing Array Values257641 +Node: Arrays of Variable Length258963 +Node: Enumeration Types261600 +Node: Defining Typedef Names264774 +Node: Statements267489 +Node: Expression Statement269514 +Node: if Statement270725 +Node: if-else Statement271555 +Node: Blocks272470 +Node: return Statement274968 +Node: Loop Statements275799 +Node: while Statement276900 +Node: do-while Statement277908 +Node: break Statement278613 +Node: for Statement280146 +Node: Example of for281198 +Node: Omitted for-Expressions282345 +Node: for-Index Declarations284164 +Node: continue Statement285178 +Node: switch Statement286686 +Node: switch Example289270 +Node: Duffs Device290785 +Node: Case Ranges292021 +Node: Null Statement292692 +Node: goto Statement293269 +Node: Local Labels297024 +Node: Labels as Values300144 +Ref: Labels as Values-Footnote-1301030 +Node: Label Value Uses301226 +Node: Label Value Caveats302507 +Node: Statement Exprs303964 +Node: Variables306023 +Node: Variable Declarations308229 +Node: Declaring Arrays and Pointers309795 +Node: Combining Variable Declarations310971 +Node: Initializers311922 +Node: Designated Inits315078 +Node: Auto Type317781 +Node: Local Variables318999 +Ref: Local Variables-Footnote-1320769 +Node: File-Scope Variables320886 +Node: Static Local Variables322242 +Node: Extern Declarations323363 +Node: Allocating File-Scope325384 +Node: auto and register327109 +Node: Omitting Types327938 +Node: Type Qualifiers328401 +Node: const329505 +Node: volatile331777 +Node: restrict Pointers333940 +Node: restrict Pointer Example335597 +Node: Functions337630 +Node: Function Definitions338609 +Node: Function Parameter Variables339625 +Node: Forward Function Declarations342184 +Node: Static Functions343119 +Node: Arrays as Parameters344393 +Node: Array Parm Pointer344872 +Node: Passing Array Args346082 +Node: Array Parm Qualifiers348369 +Node: Structs as Parameters349880 +Node: Function Declarations351365 +Node: Function Calls355129 +Node: Function Call Semantics356478 +Node: Function Pointers358102 +Node: Declaring Function Pointers359093 +Node: Assigning Function Pointers361236 +Node: Calling Function Pointers362269 +Node: The main Function363192 +Node: Values from main364833 +Node: Command-line Parameters366054 +Node: Environment Variables367428 +Node: Advanced Definitions368921 +Node: Variable-Length Array Parameters369603 +Node: Variable Number of Arguments371784 +Node: Nested Functions375889 +Node: Inline Function Definitions380544 +Node: Obsolete Definitions384609 +Node: Old GNU Inlining385082 +Node: Old-Style Function Definitions386056 +Node: Compatible Types388020 +Ref: Compatible Types-Footnote-1390656 +Node: Type Conversions390691 +Node: Explicit Type Conversion391361 +Node: Assignment Type Conversions392965 +Node: Argument Promotions394754 +Ref: Argument Promotions-Footnote-1395802 +Node: Operand Promotions396026 +Node: Common Type396626 +Node: Scope397860 +Node: Preprocessing400933 +Node: Preproc Overview401382 +Node: Directives402993 +Node: Preprocessing Tokens404533 +Node: Header Files408776 +Node: include Syntax410959 +Node: include Operation412852 +Node: Search Path414738 +Node: Once-Only Headers417356 +Node: Computed Includes419098 +Node: Macros422290 +Node: Object-like Macros423579 +Node: Function-like Macros427547 +Node: Macro Arguments429924 +Node: Stringification434232 +Node: Concatenation437552 +Node: Variadic Macros441065 +Ref: Variadic Macros-Footnote-1445062 +Ref: Variadic Macros-Footnote-2445087 +Node: Predefined Macros445112 +Node: Undefining and Redefining Macros452268 +Node: Directives Within Macro Arguments454169 +Node: Macro Pitfalls455128 +Node: Misnesting455664 +Node: Operator Precedence Problems456786 +Node: Swallowing the Semicolon458682 +Node: Duplication of Side Effects460762 +Node: Macros and Auto Type462880 +Node: Self-Referential Macros464150 +Node: Argument Prescan466612 +Node: Conditionals470435 +Node: Conditional Uses472164 +Node: Conditional Syntax473572 +Node: ifdef473940 +Node: if477302 +Node: defined479816 +Node: else481195 +Node: elif481823 +Node: Deleted Code483266 +Node: Diagnostics484574 +Node: Line Control485786 +Node: Null Directive488069 +Node: Integers in Depth488356 +Node: Integer Representations488816 +Ref: Integer Representations-Footnote-1493053 +Node: Maximum and Minimum Values493216 +Node: Floating Point in Depth494904 +Node: Floating Representations495543 +Node: Floating Type Specs497339 +Node: Special Float Values498746 +Ref: subnormal numbers500914 +Node: Invalid Optimizations502839 +Node: Exception Flags504340 +Ref: fetestexcept505169 +Node: Exact Floating-Point505686 +Node: Rounding506751 +Node: Rounding Issues508903 +Node: Significance Loss510325 +Node: Fused Multiply-Add513426 +Node: Error Recovery515349 +Node: Exact Floating Constants518283 +Node: Handling Infinity520362 +Node: Handling NaN522214 +Node: Signed Zeros525477 +Node: Scaling by the Base526197 +Node: Rounding Control527541 +Node: Machine Epsilon529236 +Node: Complex Arithmetic534362 +Node: Round-Trip Base Conversion538021 +Node: Further Reading540160 +Node: Compilation547889 +Node: Directing Compilation550866 +Node: Pragmas551335 +Node: Pragma Basics551713 +Node: Severity Pragmas555830 +Node: Optimization Pragmas558462 +Node: Static Assertions560819 +Node: Type Alignment562667 +Node: Aliasing565838 +Node: Aliasing Alignment567412 +Node: Aliasing Length568427 +Node: Aliasing Type Rules569433 +Node: Digraphs573341 +Node: Attributes573987 +Node: Signals577024 +Node: GNU Free Documentation License578741 +Node: Symbol Index604088 +Node: Concept Index612004  End Tag Table