Next: Built-in Functions, Previous: C++ Implementation, Up: Top [Contents][Index]
GNU C provides several language features not found in ISO standard C.
(The -pedantic option directs GCC to print a warning message if
any of these features is used.) To test for the availability of these
features 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 are also available in C++. See Extensions to the C++ Language, for extensions that apply only to C++.
Some features that are in ISO C99 but not C90 or C++ are also, as extensions, accepted by GCC in C90 mode and in C++.
| • Additional Numeric Types: | Additional sizes and formats, plus complex numbers. | |
| • Aggregate Types: | Extensions to arrays, structs, and unions. | |
| • Named Address Spaces: | Named address spaces. | |
| • Attributes: | GCC supports both standard and legacy attribute syntax. | |
| • Pragmas: | Pragmas accepted by GCC. | |
| • Thread-Local: | Per-thread variables. | |
| • OpenMP: | Multiprocessing extensions. | |
| • OpenACC: | Extensions for offloading code to accelerator devices. | |
| • 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. | |
| • Syntax Extensions: | Other extensions to C syntax. | |
| • Semantic Extensions: | GNU C defines behavior for some non-standard constructs. |
Next: Built-in Functions, Previous: C++ Implementation, Up: Top [Contents][Index]