359 lines
11 KiB
Text
359 lines
11 KiB
Text
This is c.info, produced by makeinfo version 6.8 from c.texi.
|
||
|
||
Copyright © 2022 Richard Stallman and Free Software Foundation, Inc.
|
||
|
||
(The work of Trevis Rothwell and Nelson Beebe has been assigned or
|
||
licensed to the FSF.)
|
||
|
||
Permission is granted to copy, distribute and/or modify this
|
||
document under the terms of the GNU Free Documentation License,
|
||
Version 1.3 or any later version published by the Free Software
|
||
Foundation; with the Invariant Sections being “GNU General Public
|
||
License,” with the Front-Cover Texts being “A GNU Manual,” and with
|
||
the Back-Cover Texts as in (a) below. A copy of the license is
|
||
included in the section entitled “GNU Free Documentation License.”
|
||
|
||
(a) The FSF’s Back-Cover Text is: “You have the freedom to copy and
|
||
modify this GNU manual.”
|
||
INFO-DIR-SECTION Programming
|
||
START-INFO-DIR-ENTRY
|
||
* C: (c). GNU C Language Intro and Reference Manual
|
||
END-INFO-DIR-ENTRY
|
||
|
||
|
||
Indirect:
|
||
c.info-1: 966
|
||
c.info-2: 301107
|
||
c.info-3: 606017
|
||
|
||
Tag Table:
|
||
(Indirect)
|
||
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 Values301107
|
||
Ref: Labels as Values-Footnote-1301993
|
||
Node: Label Value Uses302189
|
||
Node: Label Value Caveats303470
|
||
Node: Statement Exprs304927
|
||
Node: Variables306986
|
||
Node: Variable Declarations309192
|
||
Node: Declaring Arrays and Pointers310758
|
||
Node: Combining Variable Declarations311934
|
||
Node: Initializers312885
|
||
Node: Designated Inits316041
|
||
Node: Auto Type318744
|
||
Node: Local Variables319962
|
||
Ref: Local Variables-Footnote-1321732
|
||
Node: File-Scope Variables321849
|
||
Node: Static Local Variables323205
|
||
Node: Extern Declarations324326
|
||
Node: Allocating File-Scope326347
|
||
Node: auto and register328072
|
||
Node: Omitting Types328901
|
||
Node: Type Qualifiers329364
|
||
Node: const330468
|
||
Node: volatile332740
|
||
Node: restrict Pointers334903
|
||
Node: restrict Pointer Example336560
|
||
Node: Functions338593
|
||
Node: Function Definitions339572
|
||
Node: Function Parameter Variables340588
|
||
Node: Forward Function Declarations343147
|
||
Node: Static Functions344082
|
||
Node: Arrays as Parameters345356
|
||
Node: Array Parm Pointer345835
|
||
Node: Passing Array Args347045
|
||
Node: Array Parm Qualifiers349332
|
||
Node: Structs as Parameters350843
|
||
Node: Function Declarations352328
|
||
Node: Function Calls356092
|
||
Node: Function Call Semantics357441
|
||
Node: Function Pointers359065
|
||
Node: Declaring Function Pointers360056
|
||
Node: Assigning Function Pointers362199
|
||
Node: Calling Function Pointers363232
|
||
Node: The main Function364155
|
||
Node: Values from main365796
|
||
Node: Command-line Parameters367017
|
||
Node: Environment Variables368391
|
||
Node: Advanced Definitions369884
|
||
Node: Variable-Length Array Parameters370566
|
||
Node: Variable Number of Arguments372747
|
||
Node: Nested Functions376852
|
||
Node: Inline Function Definitions381507
|
||
Node: Obsolete Definitions385572
|
||
Node: Old GNU Inlining386045
|
||
Node: Old-Style Function Definitions387019
|
||
Node: Compatible Types388983
|
||
Ref: Compatible Types-Footnote-1391619
|
||
Node: Type Conversions391654
|
||
Node: Explicit Type Conversion392324
|
||
Node: Assignment Type Conversions393928
|
||
Node: Argument Promotions395717
|
||
Ref: Argument Promotions-Footnote-1396765
|
||
Node: Operand Promotions396989
|
||
Node: Common Type397589
|
||
Node: Scope398823
|
||
Node: Preprocessing401896
|
||
Node: Preproc Overview402345
|
||
Node: Directives403956
|
||
Node: Preprocessing Tokens405496
|
||
Node: Header Files409739
|
||
Node: include Syntax411922
|
||
Node: include Operation413815
|
||
Node: Search Path415701
|
||
Node: Once-Only Headers418319
|
||
Node: Computed Includes420061
|
||
Node: Macros423253
|
||
Node: Object-like Macros424542
|
||
Node: Function-like Macros428510
|
||
Node: Macro Arguments430887
|
||
Node: Stringification435195
|
||
Node: Concatenation438515
|
||
Node: Variadic Macros442028
|
||
Ref: Variadic Macros-Footnote-1446025
|
||
Ref: Variadic Macros-Footnote-2446050
|
||
Node: Predefined Macros446075
|
||
Node: Undefining and Redefining Macros453231
|
||
Node: Directives Within Macro Arguments455132
|
||
Node: Macro Pitfalls456091
|
||
Node: Misnesting456627
|
||
Node: Operator Precedence Problems457749
|
||
Node: Swallowing the Semicolon459645
|
||
Node: Duplication of Side Effects461725
|
||
Node: Macros and Auto Type463843
|
||
Node: Self-Referential Macros465113
|
||
Node: Argument Prescan467575
|
||
Node: Conditionals471398
|
||
Node: Conditional Uses473127
|
||
Node: Conditional Syntax474535
|
||
Node: ifdef474903
|
||
Node: if478265
|
||
Node: defined480779
|
||
Node: else482158
|
||
Node: elif482786
|
||
Node: Deleted Code484229
|
||
Node: Diagnostics485537
|
||
Node: Line Control486749
|
||
Node: Null Directive489032
|
||
Node: Integers in Depth489319
|
||
Node: Integer Representations489779
|
||
Ref: Integer Representations-Footnote-1494016
|
||
Node: Maximum and Minimum Values494179
|
||
Node: Floating Point in Depth495867
|
||
Node: Floating Representations496506
|
||
Node: Floating Type Specs498302
|
||
Node: Special Float Values499709
|
||
Ref: subnormal numbers501877
|
||
Node: Invalid Optimizations503802
|
||
Node: Exception Flags505303
|
||
Ref: fetestexcept506132
|
||
Node: Exact Floating-Point506649
|
||
Node: Rounding507714
|
||
Node: Rounding Issues509866
|
||
Node: Significance Loss511288
|
||
Node: Fused Multiply-Add514389
|
||
Node: Error Recovery516312
|
||
Node: Exact Floating Constants519246
|
||
Node: Handling Infinity521325
|
||
Node: Handling NaN523177
|
||
Node: Signed Zeros526440
|
||
Node: Scaling by the Base527160
|
||
Node: Rounding Control528504
|
||
Node: Machine Epsilon530199
|
||
Node: Complex Arithmetic535325
|
||
Node: Round-Trip Base Conversion538984
|
||
Node: Further Reading541123
|
||
Node: Compilation548852
|
||
Node: Directing Compilation551829
|
||
Node: Pragmas552298
|
||
Node: Pragma Basics552676
|
||
Node: Severity Pragmas556793
|
||
Node: Optimization Pragmas559425
|
||
Node: Static Assertions561782
|
||
Node: Type Alignment563630
|
||
Node: Aliasing566801
|
||
Node: Aliasing Alignment568375
|
||
Node: Aliasing Length569390
|
||
Node: Aliasing Type Rules570396
|
||
Node: Digraphs574304
|
||
Node: Attributes574950
|
||
Node: Signals577987
|
||
Node: GNU Free Documentation License579704
|
||
Node: Symbol Index606017
|
||
Node: Concept Index613933
|
||
|
||
End Tag Table
|
||
|
||
|
||
Local Variables:
|
||
coding: utf-8
|
||
End:
|