©ISO/IECISO/IEC9899:1999(E)ContentsForeword.............................xiIntroduction............................xiv1.Scope.............................12.Normativereferences.......................23.Terms,definitions,andsymbols...................34.Conformance..........................75.Environment..........................95.1Conceptualmodels.....................95.1.1Translationenvironment................95.1.2Executionenvironments................115.2Environmentalconsiderations.................175.2.1Charactersets....................175.2.2Characterdisplaysemantics..............195.2.3Signalsandinterrupts.................205.2.4Environmentallimits.................206.Language............................296.1Notation..........................296.2Concepts.........................296.2.1Scopesofidentifiers.................296.2.2Linkagesofidentifiers.................306.2.3Namespacesofidentifiers...............316.2.4Storagedurationsofobjects..............326.2.5Types.......................336.2.6Representationsoftypes................376.2.7Compatibletypeandcompositetype...........406.3Conversions........................426.3.1Arithmeticoperands.................426.3.2Otheroperands...................466.4Lexicalelements......................496.4.1Keywords......................506.4.2Identifiers......................516.4.3Universalcharacternames...............536.4.4Constants......................546.4.5Stringliterals....................626.4.6Punctuators.....................636.4.7Headernames....................646.4.8Preprocessingnumbers................656.4.9Comments.....................666.5Expressions........................67ContentsiiiISO/IEC9899:1999(E)©ISO/IEC6.5.1Primaryexpressions.................696.5.2Postfixoperators...................696.5.3Unaryoperators...................786.5.4Castoperators....................816.5.5Multiplicativeoperators................826.5.6Additiveoperators..................826.5.7Bitwiseshiftoperators.................846.5.8Relationaloperators..................856.5.9Equalityoperators..................866.5.10BitwiseANDoperator.................876.5.11BitwiseexclusiveORoperator.............886.5.12BitwiseinclusiveORoperator..............886.5.13LogicalANDoperator.................896.5.14LogicalORoperator.................896.5.15Conditionaloperator.................906.5.16Assignmentoperators.................916.5.17Commaoperator...................946.6Constantexpressions.....................956.7Declarations........................976.7.1Storage-classspecifiers................986.7.2Typespecifiers....................996.7.3Typequalifiers....................1086.7.4Functionspecifiers..................1126.7.5Declarators.....................1146.7.6Typenames.....................1226.7.7Typedefinitions...................1236.7.8Initialization....................1256.8Statementsandblocks....................1316.8.1Labeledstatements..................1316.8.2Compoundstatement.................1326.8.3Expressionandnullstatements.............1326.8.4Selectionstatements.................1336.8.5Iterationstatements..................1356.8.6Jumpstatements...................1366.9Externaldefinitions.....................1406.9.1Functiondefinitions..................1416.9.2Externalobjectdefinitions...............1436.10Preprocessingdirectives...................1456.10.1Conditionalinclusion.................1476.10.2Sourcefileinclusion.................1496.10.3Macroreplacement..................1516.10.4Linecontrol.....................1586.10.5Errordirective....................1596.10.6Pragmadirective...................159ivContents©ISO/IECISO/IEC9899:1999(E)6.10.7Nulldirective....................1606.10.8Predefinedmacronames................1606.10.9Pragmaoperator...................1616.11Futurelanguagedirections..................1636.11.1Floatingtypes....................1636.11.2Linkagesofidentifiers.................1636.11.3Externalnames...................1636.11.4Characterescapesequences..............1636.11.5Storage-classspecifiers................1636.11.6Functiondeclarators.................1636.11.7Functiondefinitions..................1636.11.8Pragmadirectives..................1636.11.9Predefinedmacronames................1637.Library.............................1647.1Introduction........................1647.1.1Definitionsofterms..................1647.1.2Standardheaders...................1657.1.3Reservedidentifiers..................1667.1.4Useoflibraryfunctions................1667.2Diagnosticsassert.h..................1697.2.1Programdiagnostics.................1697.3Complexarithmeticcomplex.h..............1707.3.1Introduction.....................1707.3.2Conventions.....................1717.3.3Branchcuts.....................1717.3.4TheCX_LIMITED_RANGEpragma...........1717.3.5Trigonometricfunctions................1727.3.6Hyperbolicfunctions.................1747.3.7Exponentialandlogarithmicfunctions..........1767.3.8Powerandabsolute-valuefunctions...........1777.3.9Manipulationfunctions............