PROGRAMMING LANGUAGES - C СТАНДАРТ ISO-IEC 9899 TC2

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Language: English
Commentary: Banned by justonly.
Pages: 550

Contents......Page 1
Foreword......Page 9
Introduction......Page 12
1. Scope......Page 13
2. Normative references......Page 14
3. Terms, definitions, and symbols......Page 15
4. Conformance......Page 19
5.1.1.2 Translation phases......Page 21
5.1.2.2 Hosted environment......Page 23
5.1.2.2.2 Program execution......Page 24
5.1.2.3 Program execution......Page 25
5.2.1 Character sets......Page 29
5.2.1.2 Multibyte characters......Page 30
5.2.2 Character display semantics......Page 31
5.2.4.1 Translation limits......Page 32
5.2.4.2.1 Sizes of integer types ......Page 33
5.2.4.2.2 Characteristics of floating types ......Page 35
6.2.1 Scopes of identifiers......Page 41
6.2.2 Linkages of identifiers......Page 42
6.2.3 Name spaces of identifiers......Page 43
6.2.4 Storage durations of objects......Page 44
6.2.5 Types......Page 45
6.2.6.1 General......Page 49
6.2.6.2 Integer types......Page 50
6.2.7 Compatible type and composite type......Page 52
6.3.1.1 Boolean, characters, and integers......Page 54
6.3.1.4 Real floating and integer......Page 55
6.3.1.8 Usual arithmetic conversions......Page 56
6.3.2.1 Lvalues, arrays, and function designators......Page 58
6.3.2.3 Pointers......Page 59
6.4 Lexical elements......Page 61
6.4.1 Keywords......Page 62
6.4.2.1 General......Page 63
6.4.2.2 Predefined identifiers......Page 64
6.4.3 Universal character names......Page 65
6.4.4.1 Integer constants......Page 66
6.4.4.2 Floating constants......Page 69
6.4.4.4 Character constants......Page 71
6.4.5 String literals......Page 74
6.4.6 Punctuators......Page 75
6.4.7 Header names......Page 76
6.4.8 Preprocessing numbers......Page 77
6.4.9 Comments......Page 78
6.5 Expressions......Page 79
6.5.2 Postfix operators......Page 81
6.5.2.1 Array subscripting......Page 82
6.5.2.2 Function calls......Page 83
6.5.2.3 Structure and union members......Page 84
6.5.2.5 Compound literals......Page 87
6.5.3.2 Address and indirection operators......Page 90
6.5.3.3 Unary arithmetic operators......Page 91
6.5.3.4 The sizeof operator......Page 92
6.5.4 Cast operators......Page 93
6.5.6 Additive operators......Page 94
6.5.7 Bitwise shift operators......Page 96
6.5.8 Relational operators......Page 97
6.5.9 Equality operators......Page 98
6.5.10 Bitwise AND operator......Page 99
6.5.12 Bitwise inclusive OR operator......Page 100
6.5.14 Logical OR operator......Page 101
6.5.15 Conditional operator......Page 102
6.5.16 Assignment operators......Page 103
6.5.16.1 Simple assignment......Page 104
6.5.16.2 Compound assignment......Page 105
6.5.17 Comma operator......Page 106
6.6 Constant expressions......Page 107
6.7 Declarations......Page 109
6.7.1 Storage-class specifiers......Page 110
6.7.2 Type specifiers......Page 111
6.7.2.1 Structure and union specifiers......Page 113
6.7.2.2 Enumeration specifiers......Page 117
6.7.2.3 Tags......Page 118
6.7.3 Type qualifiers......Page 120
6.7.3.1 Formal definition of restrict......Page 122
6.7.4 Function specifiers......Page 124
6.7.5 Declarators......Page 126
6.7.5.1 Pointer declarators......Page 127
6.7.5.2 Array declarators......Page 128
6.7.5.3 Function declarators (including prototypes)......Page 130
6.7.6 Type names......Page 134
6.7.7 Type definitions......Page 135
6.7.8 Initialization......Page 137
6.8.1 Labeled statements......Page 143
6.8.3 Expression and null statements......Page 144
6.8.4.1 The if statement......Page 145
6.8.4.2 The switch statement......Page 146
6.8.5 Iteration statements......Page 147
6.8.6 Jump statements......Page 148
6.8.6.1 The goto statement......Page 149
6.8.6.3 The break statement......Page 150
6.8.6.4 The return statement......Page 151
6.9 External definitions......Page 152
6.9.1 Function definitions......Page 153
6.9.2 External object definitions......Page 155
6.10 Preprocessing directives......Page 157
6.10.1 Conditional inclusion......Page 159
6.10.2 Source file inclusion......Page 161
6.10.3 Macro replacement......Page 163
6.10.3.2 The # operator......Page 165
6.10.3.3 The ## operator......Page 166
6.10.3.5 Scope of macro definitions......Page 167
6.10.4 Line control......Page 170
6.10.6 Pragma directive......Page 171
6.10.8 Predefined macro names......Page 172
6.10.9 Pragma operator......Page 173
6.11.9 Predefined macro names......Page 175
7.1.1 Definitions of terms......Page 176
7.1.2 Standard headers......Page 177
7.1.4 Use of library functions......Page 178
7.2.1.1 The assert macro......Page 181
7.3.2 Conventions......Page 182
7.3.4 The CX_LIMITED_RANGE pragma......Page 183
7.3.5.2 The casin functions......Page 184
7.3.5.5 The csin functions......Page 185
7.3.6.2 The casinh functions......Page 186
7.3.6.5 The csinh functions......Page 187
7.3.7.2 The clog functions......Page 188
7.3.8.2 The cpow functions......Page 189
7.3.9.2 The cimag functions......Page 190
7.3.9.4 The cproj functions......Page 191
7.3.9.5 The creal functions......Page 192
7.4.1.2 The isalpha function......Page 193
7.4.1.6 The isgraph function......Page 194
7.4.1.10 The isspace function......Page 195
7.4.2.1 The tolower function......Page 196
7.4.2.2 The toupper function......Page 197
7.5 Errors ......Page 198
7.6 Floating-point environment ......Page 199
7.6.1 The FENV_ACCESS pragma......Page 201
7.6.2.1 The feclearexcept function......Page 202
7.6.2.3 The feraiseexcept function......Page 203
7.6.2.5 The fetestexcept function......Page 204
7.6.3.2 The fesetround function......Page 205
7.6.4.2 The feholdexcept function......Page 206
7.6.4.4 The feupdateenv function......Page 207
7.7 Characteristics of floating types ......Page 209
7.8.1 Macros for format specifiers......Page 210
7.8.2.1 The imaxabs function......Page 211
7.8.2.3 The strtoimax and strtoumax functions......Page 212
7.8.2.4 The wcstoimax and wcstoumax functions......Page 213
7.9 Alternative spellings ......Page 214
7.10 Sizes of integer types ......Page 215
7.11 Localization ......Page 216
7.11.1.1 The setlocale function......Page 217
7.11.2.1 The localeconv function......Page 218
7.12 Mathematics ......Page 224
7.12.1 Treatment of error conditions......Page 226
7.12.2 The FP_CONTRACT pragma......Page 227
7.12.3.2 The isfinite macro......Page 228
7.12.3.5 The isnormal macro......Page 229
7.12.4.1 The acos functions......Page 230
7.12.4.4 The atan2 functions......Page 231
7.12.4.7 The tan functions......Page 232
7.12.5.3 The atanh functions......Page 233
7.12.5.6 The tanh functions......Page 234
7.12.6.3 The expm1 functions......Page 235
7.12.6.5 The ilogb functions......Page 236
7.12.6.8 The log10 functions......Page 237
7.12.6.10 The log2 functions......Page 238
7.12.6.12 The modf functions......Page 239
7.12.7.2 The fabs functions......Page 240
7.12.7.5 The sqrt functions......Page 241
7.12.8.2 The erfc functions......Page 242
7.12.9.1 The ceil functions......Page 243
7.12.9.4 The rint functions......Page 244
7.12.9.6 The round functions......Page 245
7.12.9.8 The trunc functions......Page 246
7.12.10.2 The remainder functions......Page 247
7.12.11.1 The copysign functions......Page 248
7.12.11.3 The nextafter functions......Page 249
7.12.12.2 The fmax functions......Page 250
7.12.13.1 The fma functions......Page 251
7.12.14.2 The isgreaterequal macro......Page 252
7.12.14.5 The islessgreater macro......Page 253
7.12.14.6 The isunordered macro......Page 254
7.13.1.1 The setjmp macro......Page 255
7.13.2.1 The longjmp function......Page 256
7.14 Signal handling ......Page 258
7.14.1.1 The signal function......Page 259
7.14.2.1 The raise function......Page 260
7.15.1.1 The va_arg macro......Page 261
7.15.1.3 The va_end macro......Page 262
7.15.1.4 The va_start macro......Page 263
7.16 Boolean type and values ......Page 265
7.17 Common definitions ......Page 266
7.18.1 Integer types......Page 267
7.18.1.3 Fastest minimum-width integer types......Page 268
7.18.2 Limits of specified-width integer types......Page 269
7.18.2.4 Limits of integer types capable of holding object pointers......Page 270
7.18.3 Limits of other integer types......Page 271
7.18.4 Macros for integer constants......Page 272
7.18.4.2 Macros for greatest-width integer constants......Page 273
7.19.1 Introduction......Page 274
7.19.2 Streams......Page 276
7.19.3 Files......Page 278
7.19.4.2 The rename function......Page 280
7.19.4.4 The tmpnam function......Page 281
7.19.5.2 The fflush function......Page 282
7.19.5.3 The fopen function......Page 283
7.19.5.4 The freopen function......Page 284
7.19.5.6 The setvbuf function......Page 285
7.19.6.1 The fprintf function......Page 286
7.19.6.2 The fscanf function......Page 294
7.19.6.5 The snprintf function......Page 302
7.19.6.7 The sscanf function......Page 303
7.19.6.8 The vfprintf function......Page 304
7.19.6.10 The vprintf function......Page 305
7.19.6.12 The vsnprintf function......Page 306
7.19.6.14 The vsscanf function......Page 307
7.19.7.2 The fgets function......Page 308
7.19.7.5 The getc function......Page 309
7.19.7.7 The gets function......Page 310
7.19.7.10 The puts function......Page 311
7.19.7.11 The ungetc function......Page 312
7.19.8.2 The fwrite function......Page 313
7.19.9.2 The fseek function......Page 314
7.19.9.4 The ftell function......Page 315
7.19.10.1 The clearerr function......Page 316
7.19.10.4 The perror function......Page 317
7.20 General utilities ......Page 318
7.20.1.2 The atoi, atol, and atoll functions......Page 319
7.20.1.3 The strtod, strtof, and strtold functions......Page 320
7.20.1.4 The strtol, strtoll, strtoul, and strtoull functions......Page 322
7.20.2.2 The srand function......Page 324
7.20.3.2 The free function......Page 325
7.20.3.4 The realloc function......Page 326
7.20.4.3 The exit function......Page 327
7.20.4.4 The _Exit function......Page 328
7.20.4.6 The system function......Page 329
7.20.5.1 The bsearch function......Page 330
7.20.5.2 The qsort function......Page 331
7.20.6.2 The div, ldiv, and lldiv functions......Page 332
7.20.7.1 The mblen function......Page 333
7.20.7.3 The wctomb function......Page 334
7.20.8.1 The mbstowcs function......Page 335
7.20.8.2 The wcstombs function......Page 336
7.21.2.1 The memcpy function......Page 337
7.21.2.4 The strncpy function......Page 338
7.21.3.2 The strncat function......Page 339
7.21.4.2 The strcmp function......Page 340
7.21.4.5 The strxfrm function......Page 341
7.21.5.2 The strchr function......Page 342
7.21.5.5 The strrchr function......Page 343
7.21.5.8 The strtok function......Page 344
7.21.6.1 The memset function......Page 345
7.21.6.3 The strlen function......Page 346
7.22 Type-generic math ......Page 347
7.23.1 Components of time......Page 350
7.23.2.2 The difftime function......Page 351
7.23.2.3 The mktime function......Page 352
7.23.3.1 The asctime function......Page 353
7.23.3.2 The ctime function......Page 354
7.23.3.5 The strftime function......Page 355
7.24.1 Introduction......Page 360
7.24.2.1 The fwprintf function......Page 361
7.24.2.2 The fwscanf function......Page 368
7.24.2.4 The swscanf function......Page 374
7.24.2.5 The vfwprintf function......Page 375
7.24.2.7 The vswprintf function......Page 376
7.24.2.9 The vwprintf function......Page 377
7.24.2.12 The wscanf function......Page 378
7.24.3.2 The fgetws function......Page 379
7.24.3.4 The fputws function......Page 380
7.24.3.7 The getwchar function......Page 381
7.24.3.10 The ungetwc function......Page 382
7.24.4 General wide string utilities......Page 383
7.24.4.1.1 The wcstod, wcstof, and wcstold functions......Page 384
7.24.4.1.2 The wcstol, wcstoll, wcstoul, and wcstoull functions......Page 387
7.24.4.2.1 The wcscpy function......Page 388
7.24.4.2.3 The wmemcpy function......Page 389
7.24.4.3.2 The wcsncat function......Page 390
7.24.4.4.2 The wcscoll function......Page 391
7.24.4.4.4 The wcsxfrm function......Page 392
7.24.4.5.2 The wcscspn function......Page 393
7.24.4.5.5 The wcsspn function......Page 394
7.24.4.5.7 The wcstok function......Page 395
7.24.4.5.8 The wmemchr function......Page 396
7.24.5.1 The wcsftime function......Page 397
7.24.6 Extended multibyte/wide character conversion utilities......Page 398
7.24.6.2.1 The mbsinit function......Page 399
7.24.6.3.1 The mbrlen function......Page 400
7.24.6.3.2 The mbrtowc function......Page 401
7.24.6.4 Restartable multibyte/wide string conversion functions......Page 402
7.24.6.4.1 The mbsrtowcs function......Page 403
7.24.6.4.2 The wcsrtombs function......Page 404
7.25.1 Introduction......Page 405
7.25.2.1.2 The iswalpha function......Page 406
7.25.2.1.6 The iswgraph function......Page 407
7.25.2.1.10 The iswspace function......Page 408
7.25.2.2.1 The iswctype function......Page 409
7.25.2.2.2 The wctype function......Page 410
7.25.3.2 Extensible wide character case mapping functions......Page 411
7.25.3.2.2 The wctrans function......Page 412
7.26.8 Integer types ......Page 413
7.26.13 Wide character classification and mapping utilities ......Page 414
A.1.2 Keywords......Page 415
A.1.5 Constants......Page 416
A.1.6 String literals......Page 419
A.1.9 Preprocessing numbers......Page 420
A.2.1 Expressions......Page 421
A.2.2 Declarations......Page 423
A.2.3 Statements......Page 427
A.3 Preprocessing directives......Page 428
B.2 Complex ......Page 430
B.5 Floating-point environment ......Page 432
B.7 Format conversion of integer types ......Page 433
B.11 Mathematics ......Page 434
B.15 Boolean type and values ......Page 439
B.18 Input/output ......Page 440
B.19 General utilities ......Page 442
B.20 String handling ......Page 444
B.22 Date and time ......Page 445
B.23 Extended multibyte/wide character utilities ......Page 446
B.24 Wide character classification and mapping utilities ......Page 448
Annex C (informative) Sequence points......Page 450
Annex D (normative) Universal character names for identifiers......Page 451
Annex E (informative) Implementation limits......Page 453
F.2 Types......Page 455
F.3 Operators and functions......Page 456
F.5 Binary-decimal conversion......Page 458
F.7.2 Translation......Page 459
F.7.4 Constant expressions......Page 460
F.7.5 Initialization......Page 461
F.8.1 Global transformations......Page 462
F.8.2 Expression transformations......Page 463
F.8.3 Relational operators......Page 464
F.9 Mathematics ......Page 465
F.9.1.4 The atan2 functions......Page 467
F.9.2.4 The cosh functions......Page 468
F.9.3.4 The frexp functions......Page 469
F.9.3.10 The log2 functions......Page 470
F.9.4.1 The cbrt functions......Page 471
F.9.4.4 The pow functions......Page 472
F.9.6.1 The ceil functions......Page 473
F.9.6.5 The lrint and llrint functions......Page 474
F.9.6.8 The trunc functions......Page 475
F.9.8.2 The nan functions......Page 476
F.9.10.1 The fma functions......Page 477
G.3 Conventions......Page 478
G.5 Binary operators......Page 479
G.5.1 Multiplicative operators......Page 480
G.6 Complex arithmetic ......Page 483
G.6.2.1 The cacosh functions......Page 485
G.6.2.3 The catanh functions......Page 486
G.6.2.5 The csinh functions......Page 487
G.6.2.6 The ctanh functions......Page 488
G.6.3.2 The clog functions......Page 489
G.6.4.2 The csqrt functions......Page 490
G.7 Type-generic math ......Page 491
H.2.2 Integer types......Page 492
H.2.3.1 Floating-point parameters......Page 493
H.2.3.3 Rounding styles......Page 494
H.2.4 Type conversions......Page 495
H.3.1.1 Indicators......Page 496
H.3.1.2 Traps......Page 497
Annex I (informative) Common warnings......Page 498
J.1 Unspecified behavior......Page 500
J.2 Undefined behavior......Page 503
J.3.3 Identifiers......Page 516
J.3.5 Integers......Page 517
J.3.6 Floating point......Page 518
J.3.11 Preprocessing directives......Page 519
J.3.12 Library functions......Page 520
J.4 Locale-specific behavior......Page 523
J.5.6 Other arithmetic types......Page 524
J.5.13 Floating-point status flags......Page 525
J.5.17 Math error reporting......Page 526
Bibliography......Page 527
Index......Page 529
A......Page 530
B......Page 531
C......Page 532
D......Page 534
E......Page 535
F......Page 536
I......Page 538
L......Page 540
N......Page 542
P......Page 543
R......Page 544
S......Page 545
U......Page 548
W......Page 549
Z......Page 550