diff options
Diffstat (limited to 'devdocs/gcc~13/c-extensions.html')
| -rw-r--r-- | devdocs/gcc~13/c-extensions.html | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/devdocs/gcc~13/c-extensions.html b/devdocs/gcc~13/c-extensions.html new file mode 100644 index 00000000..98398f74 --- /dev/null +++ b/devdocs/gcc~13/c-extensions.html @@ -0,0 +1,6 @@ +<div class="chapter-level-extent" id="C-Extensions"> <div class="nav-panel"> <p> Next: <a href="c_002b_002b-extensions" accesskey="n" rel="next">Extensions to the C++ Language</a>, Previous: <a href="c_002b_002b-implementation" accesskey="p" rel="prev">C++ Implementation-Defined Behavior</a>, Up: <a href="index" accesskey="u" rel="up">Introduction</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div> <h1 class="chapter" id="Extensions-to-the-C-Language-Family"><span>6 Extensions to the C Language Family<a class="copiable-link" href="#Extensions-to-the-C-Language-Family"> ¶</a></span></h1> <p>GNU C provides several language features not found in ISO standard C. (The <samp class="option">-pedantic</samp> 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 <code class="code">__GNUC__</code>, which is always defined under GCC. </p> <p>These extensions are available in C and Objective-C. Most of them are also available in C++. See <a class="xref" href="c_002b_002b-extensions">Extensions to the C++ Language</a>, for extensions that apply <em class="emph">only</em> to C++. </p> <p>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++. </p> <ul class="mini-toc"> <li><a href="statement-exprs" accesskey="1">Statements and Declarations in Expressions</a></li> <li><a href="local-labels" accesskey="2">Locally Declared Labels</a></li> <li><a href="labels-as-values" accesskey="3">Labels as Values</a></li> <li><a href="nested-functions" accesskey="4">Nested Functions</a></li> <li><a href="nonlocal-gotos" accesskey="5">Nonlocal Gotos</a></li> <li><a href="constructing-calls" accesskey="6">Constructing Function Calls</a></li> <li><a href="typeof" accesskey="7">Referring to a Type with <code class="code">typeof</code></a></li> <li><a href="conditionals" accesskey="8">Conditionals with Omitted Operands</a></li> <li><a href="_005f_005fint128" accesskey="9">128-bit Integers</a></li> <li><a href="long-long">Double-Word Integers</a></li> <li><a href="complex">Complex Numbers</a></li> <li><a href="floating-types">Additional Floating Types</a></li> <li><a href="half-precision">Half-Precision Floating Point</a></li> <li><a href="decimal-float">Decimal Floating Types</a></li> <li><a href="hex-floats">Hex Floats</a></li> <li><a href="fixed-point">Fixed-Point Types</a></li> <li><a href="named-address-spaces">Named Address Spaces</a></li> <li><a href="zero-length">Arrays of Length Zero</a></li> <li><a href="empty-structures">Structures with No Members</a></li> <li><a href="variable-length">Arrays of Variable Length</a></li> <li><a href="variadic-macros">Macros with a Variable Number of Arguments.</a></li> <li><a href="escaped-newlines">Slightly Looser Rules for Escaped Newlines</a></li> <li><a href="subscripting">Non-Lvalue Arrays May Have Subscripts</a></li> <li><a href="pointer-arith">Arithmetic on <code class="code">void</code>- and Function-Pointers</a></li> <li><a href="variadic-pointer-args">Pointer Arguments in Variadic Functions</a></li> <li><a href="pointers-to-arrays">Pointers to Arrays with Qualifiers Work as Expected</a></li> <li><a href="initializers">Non-Constant Initializers</a></li> <li><a href="compound-literals">Compound Literals</a></li> <li><a href="designated-inits">Designated Initializers</a></li> <li><a href="case-ranges">Case Ranges</a></li> <li><a href="cast-to-union">Cast to a Union Type</a></li> <li><a href="mixed-labels-and-declarations">Mixed Declarations, Labels and Code</a></li> <li><a href="function-attributes">Declaring Attributes of Functions</a></li> <li><a href="variable-attributes">Specifying Attributes of Variables</a></li> <li><a href="type-attributes">Specifying Attributes of Types</a></li> <li><a href="label-attributes">Label Attributes</a></li> <li><a href="enumerator-attributes">Enumerator Attributes</a></li> <li><a href="statement-attributes">Statement Attributes</a></li> <li><a href="attribute-syntax">Attribute Syntax</a></li> <li><a href="function-prototypes">Prototypes and Old-Style Function Definitions</a></li> <li><a href="c_002b_002b-comments">C++ Style Comments</a></li> <li><a href="dollar-signs">Dollar Signs in Identifier Names</a></li> <li><a href="character-escapes">The Character <kbd class="key">ESC</kbd> in Constants</a></li> <li><a href="alignment">Determining the Alignment of Functions, Types or Variables</a></li> <li><a href="inline">An Inline Function is As Fast As a Macro</a></li> <li><a href="volatiles">When is a Volatile Object Accessed?</a></li> <li><a href="using-assembly-language-with-c">How to Use Inline Assembly Language in C Code</a></li> <li><a href="alternate-keywords">Alternate Keywords</a></li> <li><a href="incomplete-enums">Incomplete <code class="code">enum</code> Types</a></li> <li><a href="function-names">Function Names as Strings</a></li> <li><a href="return-address">Getting the Return or Frame Address of a Function</a></li> <li><a href="vector-extensions">Using Vector Instructions through Built-in Functions</a></li> <li><a href="offsetof">Support for <code class="code">offsetof</code></a></li> <li><a href="_005f_005fsync-builtins">Legacy <code class="code">__sync</code> Built-in Functions for Atomic Memory Access</a></li> <li><a href="_005f_005fatomic-builtins">Built-in Functions for Memory Model Aware Atomic Operations</a></li> <li><a href="integer-overflow-builtins">Built-in Functions to Perform Arithmetic with Overflow Checking</a></li> <li><a href="x86-specific-memory-model-extensions-for-transactional-memory">x86-Specific Memory Model Extensions for Transactional Memory</a></li> <li><a href="object-size-checking">Object Size Checking</a></li> <li><a href="other-builtins">Other Built-in Functions Provided by GCC</a></li> <li><a href="target-builtins">Built-in Functions Specific to Particular Target Machines</a></li> <li><a href="target-format-checks">Format Checks Specific to Particular Target Machines</a></li> <li><a href="pragmas">Pragmas Accepted by GCC</a></li> <li><a href="unnamed-fields">Unnamed Structure and Union Fields</a></li> <li><a href="thread-local">Thread-Local Storage</a></li> <li><a href="binary-constants">Binary Constants using the ‘<samp class="samp">0b</samp>’ Prefix</a></li> </ul> </div> <div class="nav-panel"> <p> Next: <a href="c_002b_002b-extensions">Extensions to the C++ Language</a>, Previous: <a href="c_002b_002b-implementation">C++ Implementation-Defined Behavior</a>, Up: <a href="index">Introduction</a> [<a href="index#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="indices" title="Index" rel="index">Index</a>]</p> </div><div class="_attribution"> + <p class="_attribution-p"> + © Free Software Foundation<br>Licensed under the GNU Free Documentation License, Version 1.3.<br> + <a href="https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C-Extensions.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/C-Extensions.html</a> + </p> +</div> |
