Update c manual

This commit is contained in:
Marcus Kammer 2022-12-30 09:30:49 +01:00
parent 18752c1571
commit 97748a378f
Signed by: marcuskammer
GPG key ID: C374817BE285268F

View file

@ -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