您好,欢迎光临本网站![请登录][注册会员]  
文件名称: C语言规范2011版ISOIEC 9899 2011
  所属分类: C
  开发工具:
  文件大小: 1mb
  下载次数: 0
  上传时间: 2013-05-21
  提 供 者: crb***
 详细说明: N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x INTERNATIONAL STANDARD ©ISO/IEC ISO/IEC 9899:201x Programming languages — C ABSTRACT (Cover sheet to be provided by ISO Secretariat.) This International Standard specifies the form and establishes the interpretation of programs expressed in the programming language C. Its purpose is to promote portability, reliability, maintainability, and efficient execution of C language programs on a variety of computing systems. Clauses are included that detail the C language itself an d the contents of the C language execution library. Annexes summarize aspects of both of them, and enumerate factors that influence the portability of C programs. Although this International Standard is intended to guide knowledgeable C language programmers as well as implementors of C language translation systems, the document itself is not designed to serve as a tutorial. Recipients of this draft are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation. Changes from the previous draft (N1539) are indicated by ‘‘diff marks’’ in the right margin: deleted text is marked with ‘‘∗’’, new or changed text with ‘‘ ’’. Abstract i ISO/IEC 9899:201x Committee Draft — April 12, 2011 N1570 ii N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x Contents Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii 1. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2. Normative references . . . . . . . . . . . . . . . . . . . . . . . 2 3. Terms, definitions, and symbols . . . . . . . . . . . . . . . . . . . 3 4. Conformance . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5. Environment . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.1 Conceptual models . . . . . . . . . . . . . . . . . . . . . 10 5.1.1 Translation environment . . . . . . . . . . . . . . . . 10 5.1.2 Execution environments . . . . . . . . . . . . . . . . 12 5.2 Environmental considerations . . . . . . . . . . . . . . . . . 22 5.2.1 Character sets . . . . . . . . . . . . . . . . . . . . 22 5.2.2 Character display semantics . . . . . . . . . . . . . . 24 5.2.3 Signals and interrupts . . . . . . . . . . . . . . . . . 25 5.2.4 Environmental limits . . . . . . . . . . . . . . . . . 25 6. Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.2 Concepts . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.2.1 Scopes of identifiers . . . . . . . . . . . . . . . . . 35 6.2.2 Linkages of identifiers . . . . . . . . . . . . . . . . . 36 6.2.3 Name spaces of identifiers . . . . . . . . . . . . . . . 37 6.2.4 Storage durations of objects . . . . . . . . . . . . . . 38 6.2.5 Types . . . . . . . . . . . . . . . . . . . . . . . 39 6.2.6 Representations of types . . . . . . . . . . . . . . . . 44 6.2.7 Compatible type and composite type . . . . . . . . . . . 47 6.2.8 Alignment of objects . . . . . . . . . . . . . . . . . 48 6.3 Conversions . . . . . . . . . . . . . . . . . . . . . . . . 50 6.3.1 Arithmetic operands . . . . . . . . . . . . . . . . . 50 6.3.2 Other operands . . . . . . . . . . . . . . . . . . . 54 6.4 Lexical elements . . . . . . . . . . . . . . . . . . . . . . 57 6.4.1 Keywords . . . . . . . . . . . . . . . . . . . . . . 58 6.4.2 Identifiers . . . . . . . . . . . . . . . . . . . . . . 59 6.4.3 Universal character names . . . . . . . . . . . . . . . 61 6.4.4 Constants . . . . . . . . . . . . . . . . . . . . . . 62 6.4.5 String literals . . . . . . . . . . . . . . . . . . . . 70 6.4.6 Punctuators . . . . . . . . . . . . . . . . . . . . . 72 6.4.7 Header names . . . . . . . . . . . . . . . . . . . . 73 6.4.8 Preprocessing numbers . . . . . . . . . . . . . . . . 74 6.4.9 Comments . . . . . . . . . . . . . . . . . . . . . 75 Contents iii ISO/IEC 9899:201x Committee Draft — April 12, 2011 N1570 6.5 Expressions . . . . . . . . . . . . . . . . . . . . . . . . 76 6.5.1 Primary expressions . . . . . . . . . . . . . . . . . 78 6.5.2 Postfix operators . . . . . . . . . . . . . . . . . . . 79 6.5.3 Unary operators . . . . . . . . . . . . . . . . . . . 88 6.5.4 Cast operators . . . . . . . . . . . . . . . . . . . . 91 6.5.5 Multiplicative operators . . . . . . . . . . . . . . . . 92 6.5.6 Additive operators . . . . . . . . . . . . . . . . . . 92 6.5.7 Bitwise shift operators . . . . . . . . . . . . . . . . . 94 6.5.8 Relational operators . . . . . . . . . . . . . . . . . . 95 6.5.9 Equality operators . . . . . . . . . . . . . . . . . . 96 6.5.10 Bitwise AND operator . . . . . . . . . . . . . . . . . 97 6.5.11 Bitwise exclusive OR operator . . . . . . . . . . . . . 98 6.5.12 Bitwise inclusive OR operator . . . . . . . . . . . . . . 98 6.5.13 Logical AND operator . . . . . . . . . . . . . . . . . 99 6.5.14 Logical OR operator . . . . . . . . . . . . . . . . . 99 6.5.15 Conditional operator . . . . . . . . . . . . . . . . . 100 6.5.16 Assignment operators . . . . . . . . . . . . . . . . . 101 6.5.17 Comma operator . . . . . . . . . . . . . . . . . . . 105 6.6 Constant expressions . . . . . . . . . . . . . . . . . . . . . 106 6.7 Declarations . . . . . . . . . . . . . . . . . . . . . . . . 108 6.7.1 Storage-class specifiers . . . . . . . . . . . . . . . . 109 6.7.2 Type specifiers . . . . . . . . . . . . . . . . . . . . 111 6.7.3 Type qualifiers . . . . . . . . . . . . . . . . . . . . 121 6.7.4 Function specifiers . . . . . . . . . . . . . . . . . . 125 6.7.5 Alignment specifier . . . . . . . . . . . . . . . . . . 127 6.7.6 Declarators . . . . . . . . . . . . . . . . . . . . . 128 6.7.7 Type names . . . . . . . . . . . . . . . . . . . . . 136 6.7.8 Type definitions . . . . . . . . . . . . . . . . . . . 137 6.7.9 Initialization . . . . . . . . . . . . . . . . . . . . 139 6.7.10 Static assertions . . . . . . . . . . . . . . . . . . . 145 6.8 Statements and blocks . . . . . . . . . . . . . . . . . . . . 146 6.8.1 Labeled statements . . . . . . . . . . . . . . . . . . 146 6.8.2 Compound statement . . . . . . . . . . . . . . . . . 147 6.8.3 Expression and null statements . . . . . . . . . . . . . 147 6.8.4 Selection statements . . . . . . . . . . . . . . . . . 148 6.8.5 Iteration statements . . . . . . . . . . . . . . . . . . 150 6.8.6 Jump statements . . . . . . . . . . . . . . . . . . . 151 6.9 External definitions . . . . . . . . . . . . . . . . . . . . . 155 6.9.1 Function definitions . . . . . . . . . . . . . . . . . . 156 6.9.2 External object definitions . . . . . . . . . . . . . . . 158 6.10 Preprocessing directives . . . . . . . . . . . . . . . . . . . 160 6.10.1 Conditional inclusion . . . . . . . . . . . . . . . . . 162 6.10.2 Source file inclusion . . . . . . . . . . . . . . . . . 164 6.10.3 Macro replacement . . . . . . . . . . . . . . . . . . 166 iv Contents N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x 6.10.4 Line control . . . . . . . . . . . . . . . . . . . . . 173 6.10.5 Error directive . . . . . . . . . . . . . . . . . . . . 174 6.10.6 Pragma directive . . . . . . . . . . . . . . . . . . . 174 6.10.7 Null directive . . . . . . . . . . . . . . . . . . . . 175 6.10.8 Predefined macro names . . . . . . . . . . . . . . . . 175 6.10.9 Pragma operator . . . . . . . . . . . . . . . . . . . 178 6.11 Future language directions . . . . . . . . . . . . . . . . . . 179 6.11.1 Floating types . . . . . . . . . . . . . . . . . . . . 179 6.11.2 Linkages of identifiers . . . . . . . . . . . . . . . . . 179 6.11.3 External names . . . . . . . . . . . . . . . . . . . 179 6.11.4 Character escape sequences . . . . . . . . . . . . . . 179 6.11.5 Storage-class specifiers . . . . . . . . . . . . . . . . 179 6.11.6 Function declarators . . . . . . . . . . . . . . . . . 179 6.11.7 Function definitions . . . . . . . . . . . . . . . . . . 179 6.11.8 Pragma directives . . . . . . . . . . . . . . . . . . 179 6.11.9 Predefined macro names . . . . . . . . . . . . . . . . 179 7. Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 180 7.1.1 Definitions of terms . . . . . . . . . . . . . . . . . . 180 7.1.2 Standard headers . . . . . . . . . . . . . . . . . . . 181 7.1.3 Reserved identifiers . . . . . . . . . . . . . . . . . . 182 7.1.4 Use of library functions . . . . . . . . . . . . . . . . 183 7.2 Diagnostics . . . . . . . . . . . . . . . . . . 186 7.2.1 Program diagnostics . . . . . . . . . . . . . . . . . 186 7.3 Complex arithmetic . . . . . . . . . . . . . . 188 7.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . 188 7.3.2 Conventions . . . . . . . . . . . . . . . . . . . . . 189 7.3.3 Branch cuts . . . . . . . . . . . . . . . . . . . . . 189 7.3.4 The CX_LIMITED_RANGE pragma . . . . . . . . . . . 189 7.3.5 Trigonometric functions . . . . . . . . . . . . . . . . 190 7.3.6 Hyperbolic functions . . . . . . . . . . . . . . . . . 192 7.3.7 Exponential and logarithmic functions . . . . . . . . . . 194 7.3.8 Power and absolute-value functions . . . . . . . . . . . 195 7.3.9 Manipulation functions . . . . . . . . . . . . . . . . 196 7.4 Character handling . . . . . . . . . . . . . . . . 200 7.4.1 Character classification functions . . . . . . . . . . . . 200 7.4.2 Character case mapping functions . . . . . . . . . . . . 203 7.5 Errors . . . . . . . . . . . . . . . . . . . . . 205 7.6 Floating-point environment . . . . . . . . . . . . . 206 7.6.1 The FENV_ACCESS pragma . . . . . . . . . . . . . . 208 7.6.2 Floating-point exceptions . . . . . . . . . . . . . . . 209 7.6.3 Rounding . . . . . . . . . . . . . . . . . . . . . . 212 7.6.4 Environment . . . . . . . . . . . . . . . . . . . . 213 7.7 Characteristics of floating types . . . . . . . . . . . 216 Contents v ISO/IEC 9899:201x Committee Draft — April 12, 2011 N1570 7.8 Format conversion of integer types . . . . . . . . 217 7.8.1 Macros for format specifiers . . . . . . . . . . . . . . 217 7.8.2 Functions for greatest-width integer types . . . . . . . . . 218 7.9 Alternative spellings . . . . . . . . . . . . . . . 221 7.10 Sizes of integer types . . . . . . . . . . . . . . 222 7.11 Localization . . . . . . . . . . . . . . . . . . 223 7.11.1 Locale control . . . . . . . . . . . . . . . . . . . . 224 7.11.2 Numeric formatting convention inquiry . . . . . . . . . . 225 7.12 Mathematics . . . . . . . . . . . . . . . . . . . 231 7.12.1 Treatment of error conditions . . . . . . . . . . . . . . 233 7.12.2 The FP_CONTRACT pragma . . . . . . . . . . . . . . 235 7.12.3 Classification macros . . . . . . . . . . . . . . . . . 235 7.12.4 Trigonometric functions . . . . . . . . . . . . . . . . 238 7.12.5 Hyperbolic functions . . . . . . . . . . . . . . . . . 240 7.12.6 Exponential and logarithmic functions . . . . . . . . . . 242 7.12.7 Power and absolute-value functions . . . . . . . . . . . 247 7.12.8 Error and gamma functions . . . . . . . . . . . . . . . 249 7.12.9 Nearest integer functions . . . . . . . . . . . . . . . . 251 7.12.10 Remainder functions . . . . . . . . . . . . . . . . . 254 7.12.11 Manipulation functions . . . . . . . . . . . . . . . . 255 7.12.12 Maximum, minimum, and positive difference functions . . . 257 7.12.13 Floating multiply-add . . . . . . . . . . . . . . . . . 258 7.12.14 Comparison macros . . . . . . . . . . . . . . . . . . 259 7.13 Nonlocal jumps . . . . . . . . . . . . . . . . 262 7.13.1 Save calling environment . . . . . . . . . . . . . . . 262 7.13.2 Restore calling environment . . . . . . . . . . . . . . 263 7.14 Signal handling . . . . . . . . . . . . . . . . . 265 7.14.1 Specify signal handling . . . . . . . . . . . . . . . . 266 7.14.2 Send signal . . . . . . . . . . . . . . . . . . . . . 267 7.15 Alignment . . . . . . . . . . . . . . . . . 268 7.16 Variable arguments . . . . . . . . . . . . . . . 269 7.16.1 Variable argument list access macros . . . . . . . . . . . 269 7.17 Atomics . . . . . . . . . . . . . . . . . . 273 7.17.1 Introduction . . . . . . . . . . . . . . . . . . . . . 273 7.17.2 Initialization . . . . . . . . . . . . . . . . . . . . 274 7.17.3 Order and consistency . . . . . . . . . . . . . . . . . 275 7.17.4 Fences . . . . . . . . . . . . . . . . . . . . . . . 278 7.17.5 Lock-free property . . . . . . . . . . . . . . . . . . 279 7.17.6 Atomic integer types . . . . . . . . . . . . . . . . . 280 7.17.7 Operations on atomic types . . . . . . . . . . . . . . . 282 7.17.8 Atomic flag type and operations . . . . . . . . . . . . . 285 7.18 Boolean type and values . . . . . . . . . . . . 287 7.19 Common definitions . . . . . . . . . . . . . . . 288 7.20 Integer types . . . . . . . . . . . . . . . . . . 289 vi Contents N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x 7.20.1 Integer types . . . . . . . . . . . . . . . . . . . . 289 7.20.2 Limits of specified-width integer types . . . . . . . . . . 291 7.20.3 Limits of other integer types . . . . . . . . . . . . . . 293 7.20.4 Macros for integer constants . . . . . . . . . . . . . . 294 7.21 Input/output . . . . . . . . . . . . . . . . . . 296 7.21.1 Introduction . . . . . . . . . . . . . . . . . . . . . 296 7.21.2 Streams . . . . . . . . . . . . . . . . . . . . . . 298 7.21.3 Files . . . . . . . . . . . . . . . . . . . . . . . . 300 7.21.4 Operations on files . . . . . . . . . . . . . . . . . . 302 7.21.5 File access functions . . . . . . . . . . . . . . . . . 304 7.21.6 Formatted input/output functions . . . . . . . . . . . . 309 7.21.7 Character input/output functions . . . . . . . . . . . . . 330 7.21.8 Direct input/output functions . . . . . . . . . . . . . . 335 7.21.9 File positioning functions . . . . . . . . . . . . . . . 336 7.21.10 Error-handling functions . . . . . . . . . . . . . . . . 338 7.22 General utilities . . . . . . . . . . . . . . . . 340 7.22.1 Numeric conversion functions . . . . . . . . . . . . . . 341 7.22.2 Pseudo-random sequence generation functions . . . . . . . 346 7.22.3 Memory management functions . . . . . . . . . . . . . 347 7.22.4 Communication with the environment . . . . . . . . . . 350 7.22.5 Searching and sorting utilities . . . . . . . . . . . . . . 354 7.22.6 Integer arithmetic functions . . . . . . . . . . . . . . 356 7.22.7 Multibyte/wide character conversion functions . . . . . . . 357 7.22.8 Multibyte/wide string conversion functions . . . . . . . . 359 7.23 _Noreturn . . . . . . . . . . . . . . 361 7.24 String handling . . . . . . . . . . . . . . . . . 362 7.24.1 String function conventions . . . . . . . . . . . . . . . 362 7.24.2 Copying functions . . . . . . . . . . . . . . . . . . 362 7.24.3 Concatenation functions . . . . . . . . . . . . . . . . 364 7.24.4 Comparison functions . . . . . . . . . . . . . . . . . 365 7.24.5 Search functions . . . . . . . . . . . . . . . . . . . 367 7.24.6 Miscellaneous functions . . . . . . . . . . . . . . . . 371 7.25 Type-generic math . . . . . . . . . . . . . . . 373 7.26 Threads . . . . . . . . . . . . . . . . . . . 376 7.26.1 Introduction . . . . . . . . . . . . . . . . . . . . . 376 7.26.2 Initialization functions . . . . . . . . . . . . . . . . . 378 7.26.3 Condition variable functions . . . . . . . . . . . . . . 378 7.26.4 Mutex functions . . . . . . . . . . . . . . . . . . . 380 7.26.5 Thread functions . . . . . . . . . . . . . . . . . . . 383 7.26.6 Thread-specific storage functions . . . . . . . . . . . . 386 7.27 Date and time . . . . . . . . . . . . . . . . . . 388 7.27.1 Components of time . . . . . . . . . . . . . . . . . 388 7.27.2 Time manipulation functions . . . . . . . . . . . . . . 389 7.27.3 Time conversion functions . . . . . . . . . . . . . . . 392 Contents vii ISO/IEC 9899:201x Committee Draft — April 12, 2011 N1570 7.28 Unicode utilities . . . . . . . . . . . . . . . . . 398 7.28.1 Restartable multibyte/wide character conversion functions . . 398 7.29 Extended multibyte and wide character utilities . . . . . 402 7.29.1 Introduction . . . . . . . . . . . . . . . . . . . . . 402 7.29.2 Formatted wide character input/output functions . . . . . . 403 7.29.3 Wide character input/output functions . . . . . . . . . . 421 7.29.4 General wide string utilities . . . . . . . . . . . . . . 426 7.29.4.1 Wide string numeric conversion functions . . . . . 426 7.29.4.2 Wide string copying functions . . . . . . . . . . 430 7.29.4.3 Wide string concatenation functions . . . . . . . 432 7.29.4.4 Wide string comparison functions . . . . . . . . 433 7.29.4.5 Wide string search functions . . . . . . . . . . 435 7.29.4.6 Miscellaneous functions . . . . . . . . . . . . 439 7.29.5 Wide character time conversion functions . . . . . . . . . 439 7.29.6 Extended multibyte/wide character conversion utilities . . . . 440 7.29.6.1 Single-byte/wide character conversion functions . . . 441 7.29.6.2 Conversion state functions . . . . . . . . . . . 441 7.29.6.3 Restartable multibyte/wide character conversion functions . . . . . . . . . . . . . . . . . . 442 7.29.6.4 Restartable multibyte/wide string conversion functions . . . . . . . . . . . . . . . . . . 444 7.30 Wide character classification and mapping utilities . . . 447 7.30.1 Introduction . . . . . . . . . . . . . . . . . . . . . 447 7.30.2 Wide character classification utilities . . . . . . . . . . . 448 7.30.2.1 Wide character classification functions . . . . . . 448 7.30.2.2 Extensible wide character classification functions . . . . . . . . . . . . . . . . . . 451 7.30.3 Wide character case mapping utilities . . . . . . . . . . . 453 7.30.3.1 Wide character case mapping functions . . . . . . 453 7.30.3.2 Extensible wide character case mapping functions . . . . . . . . . . . . . . . . . . 453 7.31 Future library directions . . . . . . . . . . . . . . . . . . . 455 7.31.1 Complex arithmetic . . . . . . . . . . . 455 7.31.2 Character handling . . . . . . . . . . . . 455 7.31.3 Errors . . . . . . . . . . . . . . . . . 455 7.31.4 Floating-point environment . . . . . . . . . . 455 7.31.5 Format conversion of integer types . . . . 455 7.31.6 Localization . . . . . . . . . . . . . . 455 7.31.7 Signal handling . . . . . . . . . . . . . 455 7.31.8 Atomics . . . . . . . . . . . . . . 455 7.31.9 Boolean type and values . . . . . . . . . 456 7.31.10 Integer types . . . . . . . . . . . . . . 456 7.31.11 Input/output . . . . . . . . . . . . . . . 456 7.31.12 General utilities . . . . . . . . . . . . . 456 viii Contents N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x 7.31.13 String handling . . . . . . . . . . . . . 456 7.31.14 Date and time . . . . . . . . . . . . . . . 456 7.31.15 Threads . . . . . . . . . . . . . . . . 456 7.31.16 Extended multibyte and wide character utilities . . . . . . . . . . . . . . . . . . . . 456 7.31.17 Wide character classification and mapping utilities . . . . . . . . . . . . . . . . . . . . 457 Annex A (informative) Language syntax summary . . . . . . . . . . . . 458 A.1 Lexical grammar . . . . . . . . . . . . . . . . . . . . . . 458 A.2 Phrase structure grammar . . . . . . . . . . . . . . . . . . . 465 A.3 Preprocessing directives . . . . . . . . . . . . . . . . . . . 473 Annex B (informative) Library summary . . . . . . . . . . . . . . . . 475 B.1 Diagnostics . . . . . . . . . . . . . . . . . . 475 B.2 Complex . . . . . . . . . . . . . . . . . . . 475 B.3 Character handling . . . . . . . . . . . . . . . . 477 B.4 Errors . . . . . . . . . . . . . . . . . . . . . 477 B.5 Floating-point environment . . . . . . . . . . . . . 477 B.6 Characteristics of floating types . . . . . . . . . . . 478 B.7 Format conversion of integer types . . . . . . . . 478 B.8 Alternative spellings . . . . . . . . . . . . . . . 479 B.9 Sizes of integer types . . . . . . . . . . . . . . 479 B.10 Localization . . . . . . . . . . . . . . . . . . 479 B.11 Mathematics . . . . . . . . . . . . . . . . . . . 479 B.12 Nonlocal jumps . . . . . . . . . . . . . . . . 484 B.13 Signal handling . . . . . . . . . . . . . . . . . 484 B.14 Alignment . . . . . . . . . . . . . . . . . 485 B.15 Variable arguments . . . . . . . . . . . . . . . 485 B.16 Atomics . . . . . . . . . . . . . . . . . . 485 B.17 Boolean type and values . . . . . . . . . . . . 487 B.18 Common definitions . . . . . . . . . . . . . . . 487 B.19 Integer types . . . . . . . . . . . . . . . . . . 487 B.20 Input/output . . . . . . . . . . . . . . . . . . 488 B.21 General utilities . . . . . . . . . . . . . . . . 491 B.22 _Noreturn . . . . . . . . . . . . . . 493 B.23 String handling . . . . . . . . . . . . . . . . . 493 B.24 Type-generic math . . . . . . . . . . . . . . . 495 B.25 Threads . . . . . . . . . . . . . . . . . . . 495 B.26 Date and time . . . . . . . . . . . . . . . . . . 496 B.27 Unicode utilities . . . . . . . . . . . . . . . . . 497 B.28 Extended multibyte/wide character utilities . . . . . . 497 B.29 Wide character classification and mapping utilities . . . 502 Annex C (informative) Sequence points . . . . . . . . . . . . . . . . . 503 Contents ix ISO/IEC 9899:201x Committee Draft — April 12, 2011 N1570 Annex D (normative) Universal character names for identifiers . . . . . . . 504 D.1 Ranges of characters allowed . . . . . . . . . . . . . . . . . 504 D.2 Ranges of characters disallowed initially . . . . . . . . . . . . . 504 Annex E (informative) Implementation limits . . . . . . . . . . . . . . 505 Annex F (normative) IEC 60559 floating-point arithmetic . . . . . . . . . . 507 F.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 507 F.2 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 F.3 Operators and functions . . . . . . . . . . . . . . . . . . . 508 F.4 Floating to integer conversion . . . . . . . . . . . . . . . . . 510 F.5 Binary-decimal conversion . . . . . . . . . . . . . . . . . . 510 F.6 The return statement . . . . . . . . . . . . . . . . . . . . 511 F.7 Contracted expressions . . . . . . . . . . . . . . . . . . . . 511 F.8 Floating-point environment . . . . . . . . . . . . . . . . . . 511 F.9 Optimization . . . . . . . . . . . . . . . . . . . . . . . . 514 F.10 Mathematics . . . . . . . . . . . . . . . . . . . 517 F.10.1 Trigonometric functions . . . . . . . . . . . . . . . . 518 F.10.2 Hyperbolic functions . . . . . . . . . . . . . . . . . 520 F.10.3 Exponential and logarithmic functions . . . . . . . . . . 520 F.10.4 Power and absolute value functions . . . . . . . . . . . 524 F.10.5 Error and gamma functions . . . . . . . . . . . . . . . 525 F.10.6 Nearest integer functions . . . . . . . . . . . . . . . . 526 F.10.7 Remainder functions . . . . . . . . . . . . . . . . . 528 F.10.8 Manipulation functions . . . . . . . . . . . . . . . . 529 F.10.9 Maximum, minimum, and positive difference functions . . . 530 F.10.10 Floating multiply-add . . . . . . . . . . . . . . . . . 530 F.10.11 Comparison macros . . . . . . . . . . . . . . . . . . 531 Annex G (normative) IEC 60559-compatible complex arithmetic . . . . . . . 532 G.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 532 G.2 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 G.3 Conventions . . . . . . . . . . . . . . . . . . . . . . . . 532 G.4 Conversions . . . . . . . . . . . . . . . . . . . . . . . . 533 G.4.1 Imaginary types . . . . . . . . . . . . . . . . . . . 533 G.4.2 Real and imaginary . . . . . . . . . . . . . . . . . . 533 G.4.3 Imaginary and complex . . . . . . . . . . . . . . . . 533 G.5 Binary operators . . . . . . . . . . . . . . . . . . . . . . 533 G.5.1 Multiplicative operators . . . . . . . . . . . . . . . . 534 G.5.2 Additive operators . . . . . . . . . . . . . . . . . . 537 G.6 Complex arithmetic . . . . . . . . . . . . . . 537 G.6.1 Trigonometric functions . . . . . . . . . . . . . . . . 539 G.6.2 Hyperbolic functions . . . . . . . . . . . . . . . . . 539 G.6.3 Exponential and logarithmic functions . . . . . . . . . . 543 G.6.4 Power and absolute-value functions . . . . . . . . . . . 544 G.7 Type-generic math . . . . . . . . . . . . . . . 545 x Contents N1570 Committee Draft — April 12, 2011 ISO/IEC 9899:201x Annex H (informative) Language independent arithmetic . . . . . . . . . . 546 H.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 546 H.2 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 H.3 Notification . . . . . . . . . . . . . . . . . . . . . . . . 550 Annex I (informative) Common warnings . . . . . . . . . . . . . . . . 552 Annex J (informative) Portability issues . . . . . . . . . . . . . . . . . 554 J.1 Unspecified behavior . . . . . . . . . . . . . . . . . . . . . 554 J.2 Undefined behavior . . . . . . . . . . . . . . . . . . . . . 557 J.3 Implementation-defined behavior . . . . . . . . . . . . . . . . 571 J.4 Locale-specific behavior . . . . . . . . . . . . . . . . . . . 578 J.5 Common extensions . . . . . . . . . . . . . . . . . . . . . 579 Annex K (normative) Bounds-checking interfaces . . . . . . . . . . . . . 582 K.1 Background . . . . . . . . . . . . . . . . . . . . . . . . 582 K.2 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 K.3 Library . . . . . . . . . . . . . . . . . . . . . . . . . . 583 K.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . 583 K.3.1.1 Standard headers . . . . . . . . . . . . . . . 583 K.3.1.2 Reserved identifiers . . . . . . . . . . . . . . 584 K.3.1.3 Use of errno . . . . . . . . . . . . . . . . . 584 K.3.1.4 Runtime-constraint violations . . . . . . . . . . 584 K.3.2 Errors . . . . . . . . . . . . . . . . . 585 K.3.3 Common definitions . . . . . . . . . . . 585 K.3.4 Integer types . . . . . . . . . . . . . . 585 K.3.5 Input/output . . . . . . . . . . . . . . . 586 K.3.5.1 Operations on files . . . . . . . . . . . . . . 586 K.3.5.2 File access functions . . . . . . . . . . . . . . 588 K.3.5.3 Formatted input/output functions . . . . . . . . . 591 K.3.5.4 Character input/output functions . . . . . . . . . 602 K.3.6 General utilities . . . . . . . . . . . . . 604 K.3.6.1 Runtime-constraint handling . . . . . . . . . . 604 K.3.6.2 Communication with the environment . . . . . . . 606 K.3.6.3 Searching and sorting utilities . . . . . . . . . . 607 K.3.6.4 Multibyte/wide character conversion functions . . . 610 K.3.6.5 Multibyte/wide string conversion functions . . . . . 611 K.3.7 String handling . . . . . . . . . . . . . 614 K.3.7.1 Copying functions . . . . . . . . . . . . . . 614 K.3.7.2 Concatenation functions . . . . . . . . . . . . 617 K.3.7.3 Search functions . . . . . . . . . . . . . . . 620 K.3.7.4 Miscellaneous functions . . . . . . . . . . . . 621 K.3.8 Date and time . . . . . . . . . . . . . . . 624 K.3.8.1 Components of time . . . . . . . . . . . . . . 624 K.3.8.2 Time conversion functions . . . . . . . . . . . 624 Contents xi ISO/IEC 9899:201x Committee Draft — April 12, 2011 N1570 K.3.9 Extended multibyte and wide character utilities . . . . . . . . . . . . . . . . . . . . 627 K.3.9.1 Formatted wide character input/output functions . . . 628 K.3.9.2 General wide string utilities . . . . . . . . . . . 639 K.3.9.3 Extended multibyte/wide character conversion utilities . . . . . . . . . . . . . . . . . . . 647 Annex L (normative) Analyzability . . . . . . . . . . . . . . . . . . 652 L.1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 L.2 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 652 L.3 Requirements . . . . . . . . . . . . . . . . . . . . . . . . 653 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 xii ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: C 2011 ISO IEC 9899
 输入关键字,在本站1000多万海量源码库中尽情搜索: