summaryrefslogtreecommitdiff
path: root/devdocs/gcc~13/mixed-labels-and-declarations.html
blob: 14875f092c0a6c96c35c393b0232e9ded6d5786a (plain)
1
2
3
4
5
6
7
8
9
10
<div class="section-level-extent" id="Mixed-Labels-and-Declarations"> <div class="nav-panel"> <p> Next: <a href="function-attributes" accesskey="n" rel="next">Declaring Attributes of Functions</a>, Previous: <a href="cast-to-union" accesskey="p" rel="prev">Cast to a Union Type</a>, Up: <a href="c-extensions" accesskey="u" rel="up">Extensions to the C Language Family</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="section" id="Mixed-Declarations_002c-Labels-and-Code"><span>6.32 Mixed Declarations, Labels and Code<a class="copiable-link" href="#Mixed-Declarations_002c-Labels-and-Code"> ¶</a></span></h1>    <p>ISO C99 and ISO C++ allow declarations and code to be freely mixed within compound statements. ISO C2X allows labels to be placed before declarations and at the end of a compound statement. As an extension, GNU C also allows all this in C90 mode. For example, you could do: </p> <div class="example smallexample"> <pre class="example-preformatted" data-language="cpp">int i;
/* <span class="r">…</span> */
i++;
int j = i + 2;</pre>
</div> <p>Each identifier is visible from where it is declared until the end of the enclosing block. </p> </div><div class="_attribution">
  <p class="_attribution-p">
    &copy; 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/Mixed-Labels-and-Declarations.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Mixed-Labels-and-Declarations.html</a>
  </p>
</div>