Movatterモバイル変換


[0]ホーム

URL:


Next:, Previous:, Up:Top   [Contents][Index]


6 Extensions to the C Language Family

GNU C provides several language features not found in ISO standard C.(The-pedantic option directs GCC to print a warning message ifany of these features is used.) To test for the availability of thesefeatures in conditional compilation, check for a predefined macro__GNUC__, which is always defined under GCC.

These extensions are available in C and Objective-C. Most of them arealso available in C++. SeeExtensions to theC++ Language, for extensions that applyonly to C++.

Some features that are in ISO C99 but not C90 or C++ are also, asextensions, accepted by GCC in C90 mode and in C++.

Statement Exprs:  Putting statements and declarations inside expressions.
Local Labels:  Labels local to a block.
Labels as Values:  Getting pointers to labels, and computed gotos.
Nested Functions:  Nested function in GNU C.
Nonlocal Gotos:  Nonlocal gotos.
Constructing Calls:  Dispatching a call to another function.
Typeof:  typeof: referring to the type of an expression.
Conditionals:  Omitting the middle operand of a ‘?:’ expression.
__int128:  128-bit integers—__int128.
Long Long:  Double-word integers—long long int.
Complex:  Data types for complex numbers.
Floating Types:  Additional Floating Types.
Half-Precision:  Half-Precision Floating Point.
Decimal Float:  Decimal Floating Types.
Hex Floats:  Hexadecimal floating-point constants.
Fixed-Point:  Fixed-Point Types.
Named Address Spaces:  Named address spaces.
Zero Length:  Zero-length arrays.
Empty Structures:  Structures with no members.
Variable Length:  Arrays whose length is computed at run time.
Variadic Macros:  Macros with a variable number of arguments.
Escaped Newlines:  Slightly looser rules for escaped newlines.
Subscripting:  Any array can be subscripted, even if not an lvalue.
Pointer Arith:  Arithmetic onvoid-pointers and function pointers.
Variadic Pointer Args:  Pointer arguments to variadic functions.
Pointers to Arrays:  Pointers to arrays with qualifiers work as expected.
Initializers:  Non-constant initializers.
Compound Literals:  Compound literals give structures, unions or arrays as values.
Designated Inits:  Labeling elements of initializers.
Case Ranges:  ‘case 1 ... 9’ and such.
Cast to Union:  Casting to union type from any member of the union.
Mixed Declarations:  Mixing declarations and code.
Function Attributes:  Declaring that functions have no side effects, or that they can never return.
Variable Attributes:  Specifying attributes of variables.
Type Attributes:  Specifying attributes of types.
Label Attributes:  Specifying attributes on labels.
Enumerator Attributes:  Specifying attributes on enumerators.
Statement Attributes:  Specifying attributes on statements.
Attribute Syntax:  Formal syntax for attributes.
Function Prototypes:  Prototype declarations and old-style definitions.
C++ Comments:  C++ comments are recognized.
Dollar Signs:  Dollar sign is allowed in identifiers.
Character Escapes:  \e’ stands for the characterESC.
Alignment:  Determining the alignment of a function, type or variable.
Inline:  Defining inline functions (as fast as macros).
Volatiles:  What constitutes an access to a volatile object.
Using Assembly Language with C:  Instructions and extensions for interfacing C with assembler.
Alternate Keywords:  __const__,__asm__, etc., for header files.
Incomplete Enums:  enum foo;, with details to follow.
Function Names:  Printable strings which are the name of the current function.
Return Address:  Getting the return or frame address of a function.
Vector Extensions:  Using vector instructions through built-in functions.
Offsetof:  Special syntax for implementingoffsetof.
__sync Builtins:  Legacy built-in functions for atomic memory access.
__atomic Builtins:  Atomic built-in functions with memory model.
Integer Overflow Builtins:  Built-in functions to perform arithmetics and arithmetic overflow checking.
x86 specific memory model extensions for transactional memory:  x86 memory models.
Object Size Checking:  Built-in functions for limited buffer overflow checking.
Other Builtins:  Other built-in functions.
Target Builtins:  Built-in functions specific to particular targets.
Target Format Checks:  Format checks specific to particular targets.
Pragmas:  Pragmas accepted by GCC.
Unnamed Fields:  Unnamed struct/union fields within structs/unions.
Thread-Local:  Per-thread variables.
Binary constants:  Binary constants using the ‘0b’ prefix.

Next:, Previous:, Up:Top   [Contents][Index]


[8]ページ先頭

©2009-2025 Movatter.jp