The ISO C Committee is working toward producing an update to the current C Standard (commonly known as C0X and C99 respectively). The starting point for this update is WG14/N1124. This document contains the wording in the existing standard as modified by the responses to various defect reports, plus typo corrections.
This web site contains a modified version of N1124. It includes
wording that has been
Each C sentence is numbered. These numbers correspond to those appearing in the book "The New C Standard" (the C Standard does not number its sentences).
Note: Your browser may render some text in a different visual form compared to what it appears like in the pdf documents.
A Firefox plugin is also available.
Introduction 0 1. Scope 1 2. Normative references 18 3. Terms, definitions, and symbols 30 3.1 35 3.2 39 3.3 40 3.4 41 3.4.1 42 3.4.2 44 3.4.3 46 3.4.4 49 3.5 51 3.6 53 3.7 58 3.7.1 59 3.7.2 60 3.7.3 62 3.8 63 3.9 64 3.10 65 3.11 66 3.12 67 3.13 68 3.14 69 3.15 71 3.16 72 3.17 73 3.17.1 74 3.17.2 75 3.17.3 76 3.18 78 3.19 80 4. Conformance 82 5. Environment 104 5.1 Conceptual models 107 5.1.1 Translation environment 107 5.1.1.1 Program structure 107 5.1.1.2 Translation phases 115 5.1.1.3 Diagnostics 144 5.1.2 Execution environments 147 5.1.2.1 Freestanding environment 153 5.1.2.2 Hosted environment 156 5.1.2.2.1 Program startup 160 5.1.2.2.2 Program execution 176 5.1.2.2.3 Program termination 178 5.1.2.3 Program execution 182 5.2 Environmental considerations 212 5.2.1 Character sets 212 5.2.1.1 Trigraph sequences 230 5.2.1.2 Multibyte characters 235 5.2.2 Character display semantics 249 5.2.3 Signals and interrupts 267 5.2.4 Environmental limits 270 5.2.4.1 Translation limits 273 5.2.4.2 Numerical limits 297 5.2.4.2.1 Sizes of integer types 300 5.2.4.2.2 Characteristics of floating types 327 6. Language 381 6.1 Notation 381 6.2 Concepts 387 6.2.1 Scopes of identifiers 387 6.2.2 Linkages of identifiers 417 6.2.3 Name spaces of identifiers 435 6.2.4 Storage durations of objects 445 6.2.5 Types 469 6.2.6 Representations of types 565 6.2.6.1 General 565 6.2.6.2 Integer types 589 6.2.7 Compatible type and composite type 627 6.3 Conversions 649 6.3.1 Arithmetic operands 655 6.3.1.1 Boolean, characters, and integers 655 6.3.1.2 Boolean type 676 6.3.1.3 Signed and unsigned integers 678 6.3.1.4 Real floating and integer 682 6.3.1.5 Real floating types 691 6.3.1.6 Complex types 695 6.3.1.7 Real and complex 696 6.3.1.8 Usual arithmetic conversions 698 6.3.2 Other operands 717 6.3.2.1 Lvalues, arrays, and function designators 717 6.3.2.2 void 736 6.3.2.3 Pointers 739 6.4 Lexical elements 766 6.4.1 Keywords 783 6.4.2 Identifiers 787 6.4.2.1 General 787 6.4.2.2 Predefined identifiers 805 6.4.3 Universal character names 810 6.4.4 Constants 817 6.4.4.1 Integer constants 820 6.4.4.2 Floating constants 836 6.4.4.3 Enumeration constants 857 6.4.4.4 Character constants 860 6.4.5 String literals 889 6.4.6 Punctuators 906 6.4.7 Header names 912 6.4.8 Preprocessing numbers 921 6.4.9 Comments 927 6.5 Expressions 933 6.5.1 Primary expressions 967 6.5.2 Postfix operators 977 6.5.2.1 Array subscripting 979 6.5.2.2 Function calls 989 6.5.2.3 Structure and union members 1021 6.5.2.4 Postfix increment and decrement operators 1036 6.5.2.5 Compound literals 1044 6.5.3 Unary operators 1070 6.5.3.1 Prefix increment and decrement operators 1071 6.5.3.2 Address and indirection operators 1078 6.5.3.3 Unary arithmetic operators 1091 6.5.3.4 The sizeof operator 1108 6.5.4 Cast operators 1123 6.5.5 Multiplicative operators 1133 6.5.6 Additive operators 1143 6.5.7 Bitwise shift operators 1171 6.5.8 Relational operators 1187 6.5.9 Equality operators 1202 6.5.10 Bitwise AND operator 1224 6.5.11 Bitwise exclusive OR operator 1230 6.5.12 Bitwise inclusive OR operator 1234 6.5.13 Logical AND operator 1238 6.5.14 Logical OR operator 1246 6.5.15 Conditional operator 1254 6.5.16 Assignment operators