哋它亢99
From cppreference.com
< c
ISO/IEC 9899:1999, a.k.a. 哋它亢99, is a previous revision of the C standard.
This section is incomplete Reason: core/library features, TC1~TC3, DRs |
Obsolete
Removed
- Implicit int in declarations
- Implicit function declarations
Deprecated
New language features
- Universal-character-names in 识别码
- Increased 翻译限制
- // 評論
- 限制 WP 菜单 pointers
- Enhanced 算术类型
- Flexible array members
- 变长数组 %nod (VLA) types and variably-modified (VM) types
- Improvements of braced-init-list for 数组, struct和union types
- Non-constant initializers
- Designated initializers
- Idempotent cvr-qualifiers
- Trailing comma in enumerator-list
- Hexadecimal 浮动常量
- 复合文字
- Floating-point environment
- Requiring truncation for divisions of signed integer types
- Implicit return 0; in the
main()
function - Declarations and statements in mixed order
- init-statement in 为了 loops
- 内联 functions
- Predefined variable FUNC
- Cvr-qualifiers and static in [] within function declarations
- Variadic模板
- _Pragma preprocessor operator
- Standard pragmas for floating-point evaluation
-
STDC
FENV_ACCESS -
STDC
FP_CONTRACT -
STDC
CX_LIMITED_RANGE
-
Feature test macros for optional features
- __ STDC_IEC_559 __
- Indicates IEEE-754 binary floating-point arithmetic and required math functions are supported.
- __ STDC_IEC_559_COMPLEX __
- Indicates IEEE-754 complex arithmetic and required math functions are supported.
- __ STDC_HOSTED __
- Indicates that the implementation is 托管.
- __ STDC_ISO_10646 __
- Indicates that Unicode is used by the wide literal encodings and expands to the latest supported revision.
- __ STDC_MB_MIGHT_NEQ_WC __
- Indicates that there are some characters in the basic character set having different code unit values in 普通和宽文字编码.
New library features
New headers
Library features
- 整数类型的别名
- Integer types with exact width (
intN_t
anduintN_t
) - Fastest integer types with at least given width (
int_fastN_t
anduint_fastN_t
) - Smallest integer types with at least given width (
int_leastN_t
anduint_leastN_t
) - Integer types capable for cast between object pointers (intptr_t and uintptr_t)
- Integer types with maximum width (intmax_t and uintmax_t)
- Integer types with exact width (
- Operations on long long and intmax_t
- 浮点环境访问
- Extended floating-point math functions
- New floating-point math functions
- -
f
and -l
variants for existing and new floating-point math functions - 错误处理
- 复变函数
- exit()
- Formatting support for long long, unsigned long long, intmax_t, and uintmax_t
- ISBLANK and iswblank ()
- snprintf () and vsnprintf ()
- vfscanf () and vfwscanf () function families
- Extensions for fscanf () and explode function families
-
ll
length modifier for long long and unsigned long long -
hh
length modifier for signed char and unsigned char -
l
length modifier for double -
z
length modifier for size_t and its signed version -
t
length modifier for ptrdiff_t and its unsigned version -
j
length modifier for intmax_t and uintmax_t -
a
conversion specifier for floating-point types
-
- Numeric limit macros for long long and unsigned long long
- Numeric limit macros corresponding to existing and new aliases for integer types
- 格式化整数类型的字符串宏
- va_copy
- 类型通用数学宏
- Floating-point comparison macros
- Floating-point classification macros
- Compatibility macros for _Bool (bool, true, and false)
Defect reports
Compiler support
哋它亢99 core language features
This section is incomplete Reason: needs to list C compilers, verification |
哋它亢99 feature |
Paper(s) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel 哋它亢++ |
IBM XL 哋它亢++ |
IBM Open XL 哋它亢++ for AIX |
IBM Open XL 哋它亢++ for z/OS |
Sun/Oracle 哋它亢++ |
Embarcadero 哋它亢++ Builder |
Cray |
Nvidia HPC 哋它亢++ (ex PGI)* |
Nvidia nvcc |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Universal-character-names in 识别码 | N/A | 3.1 | Yes | Yes | ||||||||||||
Increased 翻译限制 | N590 | 0.9 | N/A | |||||||||||||
// 評論 | N644 | 2.7 | Yes | Yes | ||||||||||||
限制 WP 菜单 pointers | N448 | 2.95 | Yes | partial* | ||||||||||||
Enhanced 算术类型 | N815 N601 N620 N638 N657 N694 N809 |
Yes | partial | Maybe | ||||||||||||
Flexible array members | N/A | 3.0 | Yes | Yes | ||||||||||||
变长数组 %nod (VLA) types | N683 | 0.9 | Yes | |||||||||||||
Variably-modified (VM) types | N2778 | N/A | Yes | |||||||||||||
Designated initializers | N494 | 3.0 | Yes | Yes | ||||||||||||
Non-constant initializers | N/A | 1.21 | N/A | |||||||||||||
Idempotent cvr-qualifiers | N505 | 3.0 | N/A | |||||||||||||
Trailing comma in enumerator-list | N/A | 0.9 | Yes | Yes | ||||||||||||
Hexadecimal 浮动常量 | N308 | 2.8 | Yes | Yes | ||||||||||||
复合文字 | N716 | 3.1 | Yes | Yes | ||||||||||||
Floating-point environment | N/A | partial | partial | |||||||||||||
Requiring truncation for divisions of signed integer types | N617 | 0.9 | N/A | |||||||||||||
Implicit return 0; in the main() function
|
N/A | Yes | Yes | Yes | ||||||||||||
Declarations and statements in mixed order | N740 | 3.0 | Yes | Yes | ||||||||||||
init-statement in 为了 loops | N/A | Yes | Yes | Yes | ||||||||||||
内联 functions | N741 | 4.3 | Yes | Yes | ||||||||||||
Predefined variable FUNC | N611 | 2.95 | Yes | Yes | ||||||||||||
Cvr-qualifiers and static in [] within function declarations | N/A | 3.1 | Yes | |||||||||||||
Variadic模板 | N707 | 2.95 | Yes | Yes | ||||||||||||
_Pragma preprocessor operator | N634 | 3.0 | Yes | partial* | ||||||||||||
Standard pragmas for floating-point evaluation | N631 N696 |
No | No | Yes | ||||||||||||
哋它亢99 feature |
Paper(s) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel 哋它亢++ |
IBM XL 哋它亢++ |
IBM Open XL 哋它亢++ for AIX |
IBM Open XL 哋它亢++ for z/OS |
Sun/Oracle 哋它亢++ |
Embarcadero 哋它亢++ Builder |
Cray |
Nvidia HPC 哋它亢++ (ex PGI)* |
Nvidia nvcc |