C99 - Wikipedia
C99 is, for the most part, backward compatible with C89, but it is stricter in some ways.[3]
In particular, a declaration that lacks a type specifier no longer has int implicitly assumed. The C standards committee decided that it was of more value for compilers to diagnose inadvertent omission of the type specifier than to silently process legacy code that relied on implicit int. In practice, compilers are likely to display a warning, then assume int and continue translating the program.
C99 introduced several new features, many of which had already been implemented as extensions in several compilers:[4]
- inline functions
- intermingled declarations and code: variable declaration is no longer restricted to file scope or the start of a compound statement (block)
- several new data types, including long long int, optional extended integer types, an explicit Boolean data type (_Bool), and complex types (_Complex type specifier) to represent complex numbers
- variable-length arrays (although subsequently relegated in C11 to a conditional feature that implementations are not required to support)
- flexible array members
- support for one-line comments beginning with //, as in BCPL, C++ and Java
- new library functions, such as snprintf
- new headers, such as <stdbool.h>, <complex.h>, <tgmath.h>, and <inttypes.h>
- type-generic math (macro) functions, in <tgmath.h>, which select a math library function based upon float, double, or long double arguments, etc.
- optional support for IEEE 754-1985 floating point
- designated initializers. For example, initializing a structure by field names: struct Point p = { .x = 1, .y = 2 };[5]
- compound literals. For instance, it is possible to construct structures in function calls: function((struct x) {1, 2})[6]
- support for variadic macros (macros with a variable number of arguments)
- restrict qualification allows more aggressive code optimization, removing compile-time array access advantages previously held by FORTRAN over ANSI C[7]
- universal character names, which allows user variables to contain other characters than the standard character set: four-digit \u0040 or eight-digit hexadecimal sequences \U0001f431
- keyword static in array indices in parameter declarations[8]: For example, void someFunction(int someArray[static 100]){...} tells the compiler that every time someFunction is called, the passed pointer is definitely not NULL, and points to an array of at least 100 ints.[9][10]
Parts of the C99 standard are included in the current version of the C++ standard, including integer types, headers, and library functions. Variable-length arrays are not among these included parts because C++'s Standard Template Library already includes similar functionality.
Từ khóa » C 99
-
Convair XC-99 - Wikipedia
-
: Singapore Property And Real Estate For Sale & For Rent
-
Cinderella 99 Aka C99, Cindy 99, Cindy Weed Strain Information
-
Features Of C 99 - Oracle® Developer Studio 12.6: C User's Guide
-
What Are The Incompatible Differences Between C(99) And C++(11)?
-
C-99/15 - CURIA - List Of Results
-
52014XC0404(01) - EN - EUR-Lex - European Union
-
ARM Compiler V5.06 For UVision Armcc User Guide - Arm Developer
-
Certificate Of Fitness For The Supervision And Maintenance Of A CNG ...
-
Downloads - A Free Classic PVP Online Game And MMORPG For ...
-
Certificate Of Fitness C-99