summaryrefslogtreecommitdiff
path: root/devdocs/c/99.html
diff options
context:
space:
mode:
Diffstat (limited to 'devdocs/c/99.html')
-rw-r--r--devdocs/c/99.html142
1 files changed, 142 insertions, 0 deletions
diff --git a/devdocs/c/99.html b/devdocs/c/99.html
new file mode 100644
index 00000000..50a02097
--- /dev/null
+++ b/devdocs/c/99.html
@@ -0,0 +1,142 @@
+ <h1 id="firstHeading" class="firstHeading">C99</h1> <p><b>ISO/IEC 9899:1999</b>, a.k.a. <b>C99</b>, is a previous revision of the C standard.</p>
+<h2 id="Obsolete"> Obsolete</h2> <h3 id="Removed"> Removed</h3> <ul>
+<li> Implicit <code>int</code> in declarations </li>
+<li> Implicit function declarations </li>
+</ul> <h3 id="Deprecated"> Deprecated</h3> <ul><li> <code><a href="io/gets" title="c/io/gets">gets()</a></code> </li></ul> <h2 id="New_language_features"> New language features</h2> <ul>
+<li> Universal-character-names in <a href="language/identifier" title="c/language/identifier">identifiers</a> </li>
+<li> Increased <a href="language/identifier#Translation_limits" title="c/language/identifier">translation limits</a> </li>
+<li> <code>//</code> <a href="comment" title="c/comment">comments</a> </li>
+<li> <a href="language/restrict" title="c/language/restrict"><code>restrict</code></a> pointers </li>
+<li> Enhanced <a href="language/arithmetic_types" title="c/language/arithmetic types">arithmetic types</a> <ul>
+<li> <code>_Bool</code> </li>
+<li> <code>long long</code> and <code>unsigned long long</code> </li>
+<li> Extended integer types </li>
+<li> <a href="keyword/_complex" title="c/keyword/ Complex"><code>_Complex</code></a> types (<code>float _Complex</code>, <code>double _Complex</code>, and <code>long double _Complex</code>) </li>
+<li> <a href="keyword/_imaginary" title="c/keyword/ Imaginary"><code>_Imaginary</code></a> types (<code>float _Imaginary</code>, <code>double _Imaginary</code>, and <code>long double _Imaginary</code>) </li>
+</ul> </li>
+<li> Flexible array members </li>
+<li> <a href="language/array#Variable-length_arrays" title="c/language/array">Variable-length array</a> (VLA) types and variably-modified (VM) types </li>
+<li> Improvements of <span class="t-spar">braced-init-list</span> for <a href="language/array_initialization" title="c/language/array initialization">array</a>, <a href="language/struct_initialization" title="c/language/struct initialization">struct and union</a> types <ul>
+<li> Non-constant initializers </li>
+<li> Designated initializers </li>
+</ul> </li>
+<li> Idempotent cvr-qualifiers </li>
+<li> Trailing comma in <a href="language/enum" title="c/language/enum"><span class="t-spar">enumerator-list</span></a> </li>
+<li> Hexadecimal <a href="language/floating_constant" title="c/language/floating constant">floating constants</a> </li>
+<li> <a href="language/compound_literal" title="c/language/compound literal">Compound literals</a> </li>
+<li> Floating-point environment </li>
+<li> Requiring truncation for divisions of signed integer types </li>
+<li> Implicit <code>return 0;</code> in the <a href="language/main_function" title="c/language/main function"><code>main()</code> function</a> </li>
+<li> Declarations and statements in mixed order </li>
+<li> <span class="t-spar">init-statement</span> in <a href="language/for" title="c/language/for"><code>for</code></a> loops </li>
+<li> <a href="language/inline" title="c/language/inline"><code>inline</code></a> functions </li>
+<li> Predefined variable <a href="language/function_definition" title="c/language/function definition"><code>__func__</code></a> </li>
+<li> Cvr-qualifiers and <code>static</code> in <code>[]</code> within function declarations </li>
+<li> <a href="preprocessor/replace" title="c/preprocessor/replace">Variadic macros</a> </li>
+<li> <a href="preprocessor/impl" title="c/preprocessor/impl"><code>_Pragma</code></a> preprocessor operator </li>
+<li> Standard pragmas for floating-point evaluation <ul>
+<li> <code>STDC</code> <a href="preprocessor/impl" title="c/preprocessor/impl"><code>FENV_ACCESS</code></a> </li>
+<li> <code>STDC</code> <a href="preprocessor/impl" title="c/preprocessor/impl"><code>FP_CONTRACT</code></a> </li>
+<li> <code>STDC</code> <a href="preprocessor/impl" title="c/preprocessor/impl"><code>CX_LIMITED_RANGE</code></a> </li>
+</ul> </li>
+</ul> <h3 id="Feature_test_macros_for_optional_features"> Feature test macros for optional features</h3> <ul>
+<li> <a href="preprocessor/replace" title="c/preprocessor/replace"><code>__STDC_IEC_559__</code></a> <ul><li> Indicates IEEE-754 binary floating-point arithmetic and required math functions are supported. </li></ul> </li>
+<li> <a href="preprocessor/replace" title="c/preprocessor/replace"><code>__STDC_IEC_559_COMPLEX__</code></a> <ul><li> Indicates IEEE-754 complex arithmetic and required math functions are supported. </li></ul> </li>
+<li> <a href="preprocessor/replace" title="c/preprocessor/replace"><code>__STDC_HOSTED__</code></a> <ul><li> Indicates that the implementation is <a href="language/conformance" title="c/language/conformance">hosted</a>. </li></ul> </li>
+<li> <a href="preprocessor/replace" title="c/preprocessor/replace"><code>__STDC_ISO_10646__</code></a> <ul><li> Indicates that Unicode is used by the wide literal encodings and expands to the latest supported revision. </li></ul> </li>
+<li> <a href="preprocessor/replace" title="c/preprocessor/replace"><code>__STDC_MB_MIGHT_NEQ_WC__</code></a> <ul><li> Indicates that there are some characters in the basic character set having different code unit values in <a href="language/character_constant" title="c/language/character constant">ordinary and wide literal encodings</a>. </li></ul> </li>
+</ul> <h2 id="New_library_features"> New library features</h2> <h3 id="New_headers"> New headers</h3> <ul>
+<li> <a href="numeric/complex" title="c/numeric/complex"><code>&lt;complex.h&gt;</code></a> </li>
+<li> <a href="numeric/fenv" title="c/numeric/fenv"><code>&lt;fenv.h&gt;</code></a> </li>
+<li> <a href="types/integer" title="c/types/integer"><code>&lt;inttypes.h&gt;</code></a> </li>
+<li> <a href="types" title="c/types"><code>&lt;stdbool.h&gt;</code></a> </li>
+<li> <a href="types/integer" title="c/types/integer"><code>&lt;stdint.h&gt;</code></a> </li>
+<li> <a href="numeric/tgmath" title="c/numeric/tgmath"><code>&lt;tgmath.h&gt;</code></a> </li>
+</ul> <h3 id="Library_features"> Library features</h3> <ul>
+<li> <a href="types/integer" title="c/types/integer">Aliases for integer types</a> <ul>
+<li> Integer types with exact width (<code>int<i>N</i>_t</code> and <code>uint<i>N</i>_t</code>) </li>
+<li> Fastest integer types with at least given width (<code>int_fast<i>N</i>_t</code> and <code>uint_fast<i>N</i>_t</code>) </li>
+<li> Smallest integer types with at least given width (<code>int_least<i>N</i>_t</code> and <code>uint_least<i>N</i>_t</code>) </li>
+<li> Integer types capable for cast between object pointers (<code><a href="types/integer" title="c/types/integer">intptr_t</a></code> and <code><a href="types/integer" title="c/types/integer">uintptr_t</a></code>) </li>
+<li> Integer types with maximum width (<code><a href="types/integer" title="c/types/integer">intmax_t</a></code> and <code><a href="types/integer" title="c/types/integer">uintmax_t</a></code>) </li>
+</ul> </li>
+<li> Operations on <code>long long</code> and <code><a href="types/integer" title="c/types/integer">intmax_t</a></code> <ul>
+<li> <code><a href="numeric/math/abs" title="c/numeric/math/abs">llabs()</a></code> </li>
+<li> <code><a href="numeric/math/abs" title="c/numeric/math/abs">imaxabs()</a></code> </li>
+<li> <code><a href="numeric/math/div" title="c/numeric/math/div">lldiv()</a></code> </li>
+<li> <code><a href="numeric/math/div" title="c/numeric/math/div">imaxdiv()</a></code> </li>
+</ul> </li>
+<li> <a href="numeric/fenv" title="c/numeric/fenv">Floating-point environment access</a> </li>
+<li> Extended floating-point math functions <ul>
+<li> New floating-point math functions </li>
+<li> -<code>f</code> and -<code>l</code> variants for existing and new floating-point math functions </li>
+<li> <a href="numeric/math/math_errhandling" title="c/numeric/math/math errhandling">Math error handling</a> </li>
+</ul> </li>
+<li> <a href="numeric/complex" title="c/numeric/complex">Complex functions</a> </li>
+<li> <code><a href="program/_exit" title="c/program/ Exit">_Exit()</a></code> </li>
+<li> Formatting support for <code>long long</code>, <code>unsigned long long</code>, <code><a href="types/integer" title="c/types/integer">intmax_t</a></code>, and <code><a href="types/integer" title="c/types/integer">uintmax_t</a></code> <ul>
+<li> <code><a href="string/byte/atoi" title="c/string/byte/atoi">atoll()</a></code> </li>
+<li> <code><a href="string/byte/strtoimax" title="c/string/byte/strtoimax">strtoimax()</a></code> </li>
+<li> <code><a href="string/byte/strtol" title="c/string/byte/strtol">strtoll()</a></code> </li>
+<li> <code><a href="string/byte/strtoul" title="c/string/byte/strtoul">strtoull</a></code> </li>
+<li> <code><a href="string/byte/strtoimax" title="c/string/byte/strtoimax">strtoumax()</a></code> </li>
+<li> <code><a href="string/wide/wcstoimax" title="c/string/wide/wcstoimax">wcstoimax()</a></code> </li>
+<li> <code><a href="string/wide/wcstol" title="c/string/wide/wcstol">wcstoll()</a></code> </li>
+<li> <code><a href="string/wide/wcstoul" title="c/string/wide/wcstoul">wcstoull()</a></code> </li>
+<li> <code><a href="string/wide/wcstoimax" title="c/string/wide/wcstoimax">wcstoumax()</a></code> </li>
+</ul> </li>
+<li> <code><a href="string/byte/isblank" title="c/string/byte/isblank">isblank()</a></code> and <code><a href="string/wide/iswblank" title="c/string/wide/iswblank">iswblank()</a></code> </li>
+<li> <code><a href="io/fprintf" title="c/io/fprintf">snprintf()</a></code> and <code><a href="io/vfprintf" title="c/io/vfprintf">vsnprintf()</a></code> </li>
+<li> <code><a href="io/vfscanf" title="c/io/vfscanf">vfscanf()</a></code> and <code><a href="io/vfwscanf" title="c/io/vfwscanf">vfwscanf()</a></code> function families </li>
+<li> Extensions for <a href="io/fscanf" title="c/io/fscanf"><code>fscanf()</code></a> and <a href="io/fprintf" title="c/io/fprintf"><code>fprintf()</code></a> function families <ul>
+<li> <code>ll</code> length modifier for <code>long long</code> and <code>unsigned long long</code> </li>
+<li> <code>hh</code> length modifier for <code>signed char</code> and <code>unsigned char</code> </li>
+<li> <code>l</code> length modifier for <code>double</code> </li>
+<li> <code>z</code> length modifier for <code><a href="types/size_t" title="c/types/size t">size_t</a></code> and its signed version </li>
+<li> <code>t</code> length modifier for <code><a href="types/ptrdiff_t" title="c/types/ptrdiff t">ptrdiff_t</a></code> and its unsigned version </li>
+<li> <code>j</code> length modifier for <code><a href="types/integer" title="c/types/integer">intmax_t</a></code> and <code><a href="types/integer" title="c/types/integer">uintmax_t</a></code> </li>
+<li> <code>a</code> conversion specifier for floating-point types </li>
+</ul> </li>
+<li> Numeric limit macros for <code>long long</code> and <code>unsigned long long</code> </li>
+<li> Numeric limit macros corresponding to existing and new aliases for integer types </li>
+<li> <a href="types/integer#Format_macro_constants" title="c/types/integer">Format string macros for integer types</a> </li>
+<li> <a href="variadic/va_copy" title="c/variadic/va copy"><code>va_copy</code></a> </li>
+<li> <a href="numeric/tgmath" title="c/numeric/tgmath">Type-generic math macros</a> </li>
+<li> Floating-point comparison macros </li>
+<li> Floating-point classification macros </li>
+<li> Compatibility macros for <code>_Bool</code> (<a href="types" title="c/types"><code>bool</code></a>, <a href="types" title="c/types"><code>true</code></a>, and <a href="types" title="c/types"><code>false</code></a>) </li>
+</ul> <h2 id="Defect_reports"> Defect reports</h2> <p><a href="https://en.cppreference.com/mwiki/index.php?title=Template:c/language/history/DR99&amp;action=edit&amp;redlink=1" class="new" title="Template:c/language/history/DR99 (page does not exist)">Template:c/language/history/DR99</a></p>
+<h2 id="Compiler_support"> Compiler support</h2> <h3 id="C99_core_language_features"> C99 core language features</h3> <table class="wikitable tbody-scroll mw-collapsible t-compiler-support-top"> <tr style="height:15em"> <th>C99 feature<br><br> </th> <th>Paper(s)<br><br> </th> <th> <div>GCC</div> </th> <th> <div>Clang</div> </th> <th> <div>MSVC</div> </th> <th> <div>Apple Clang</div> </th> <th> <div>EDG eccp</div> </th> <th> <div>Intel C++</div> </th> <th> <div>IBM XL C++</div> </th> <th> <div>IBM Open XL C++ for AIX</div> </th> <th> <div>IBM Open XL C++ for z/OS</div> </th> <th> <div>Sun/Oracle C++</div> </th> <th> <div>Embarcadero C++ Builder</div> </th> <th> <div>Cray</div> </th> <th> <div><span title="ex Portland Group/PGI">Nvidia HPC C++ (ex PGI)*</span></div> </th> <th> <div>Nvidia nvcc</div> </th> <th> </th>
+</tr> <tr> <td> Universal-character-names in <a href="language/identifier" title="c/language/identifier">identifiers</a> </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-yes">3.1 </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Increased <a href="language/identifier#Translation_limits" title="c/language/identifier">translation limits</a> </td> <td> N590 </td> <td class="table-yes">0.9 </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> <code>//</code> <a href="comment" title="c/comment">comments</a> </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n644.htm">N644</a> </td> <td class="table-yes">2.7 </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> <a href="language/restrict" title="c/language/restrict"><code>restrict</code></a> pointers </td> <td> N448 </td> <td class="table-yes">2.95 </td> <td class="table-yes">Yes </td> <td class="table-maybe">partial<span title="needs /std:c11 or later">*</span> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Enhanced <a href="language/arithmetic_types" title="c/language/arithmetic types">arithmetic types</a> </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n815.htm">N815</a><br><a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n601.ps">N601</a><br><a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n620.ps">N620</a><br><a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n638.ps">N638</a><br><a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n657.ps">N657</a><br><a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n694.ps">N694</a><br><a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n809.ps">N809</a> </td> <td class="table-yes">Yes </td> <td class="table-maybe">partial </td> <td class="table-maybe">Maybe </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Flexible array members </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-yes">3.0 </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> <a href="language/array#Variable-length_arrays" title="c/language/array">Variable-length array</a> (VLA) types </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n683.htm">N683</a> </td> <td class="table-yes">0.9 </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Variably-modified (VM) types </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n2778.pdf">N2778</a> </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Designated initializers </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n494.pdf">N494</a> </td> <td class="table-yes">3.0 </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Non-constant initializers </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-yes">1.21 </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Idempotent cvr-qualifiers </td> <td> N505 </td> <td class="table-yes">3.0 </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Trailing comma in <a href="language/enum" title="c/language/enum"><span class="t-spar">enumerator-list</span></a> </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-yes">0.9 </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Hexadecimal <a href="language/floating_constant" title="c/language/floating constant">floating constants</a> </td> <td> N308 </td> <td class="table-yes">2.8 </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> <a href="language/compound_literal" title="c/language/compound literal">Compound literals</a> </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n716.htm">N716</a> </td> <td class="table-yes">3.1 </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Floating-point environment </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-maybe">partial </td> <td class="table-maybe">partial </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Requiring truncation for divisions of signed integer types </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n617.htm">N617</a> </td> <td class="table-yes">0.9 </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Implicit <code>return 0;</code> in the <a href="language/main_function" title="c/language/main function"><code>main()</code> function</a> </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Declarations and statements in mixed order </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n740.htm">N740</a> </td> <td class="table-yes">3.0 </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> <span class="t-spar">init-statement</span> in <a href="language/for" title="c/language/for"><code>for</code></a> loops </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> <a href="language/inline" title="c/language/inline"><code>inline</code></a> functions </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n741.htm">N741</a> </td> <td class="table-yes">4.3 </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Predefined variable <a href="language/function_definition" title="c/language/function definition"><code>__func__</code></a> </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n611.ps">N611</a> </td> <td class="table-yes">2.95 </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Cvr-qualifiers and <code>static</code> in <code>[]</code> within function declarations </td> <td class="table-na"> <small>N/A</small> </td> <td class="table-yes">3.1 </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> <a href="preprocessor/replace" title="c/preprocessor/replace">Variadic macros</a> </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n707.htm">N707</a> </td> <td class="table-yes">2.95 </td> <td class="table-yes">Yes </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> <a href="preprocessor/impl" title="c/preprocessor/impl"><code>_Pragma</code></a> preprocessor operator </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n634.ps">N634</a> </td> <td class="table-yes">3.0 </td> <td class="table-yes">Yes </td> <td class="table-maybe">partial<span title="needs /std:c11 or later">*</span> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr> <td> Standard pragmas for floating-point evaluation </td> <td> <a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n631.htm">N631</a><br><a rel="nofollow" class="external text" href="https://open-std.org/JTC1/SC22/WG14/www/docs/n696.ps">N696</a> </td> <td class="table-no"> No </td> <td class="table-no"> No </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-yes">Yes </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td> <td class="table-no"> </td>
+</tr> <tr style="height:15em"> <th> <br><br>C99 feature </th> <th> <br><br>Paper(s) </th> <th> <div>GCC</div> </th> <th> <div>Clang</div> </th> <th> <div>MSVC</div> </th> <th> <div>Apple Clang</div> </th> <th> <div>EDG eccp</div> </th> <th> <div>Intel C++</div> </th> <th> <div>IBM XL C++</div> </th> <th> <div>IBM Open XL C++ for AIX</div> </th> <th> <div>IBM Open XL C++ for z/OS</div> </th> <th> <div>Sun/Oracle C++</div> </th> <th> <div>Embarcadero C++ Builder</div> </th> <th> <div>Cray</div> </th> <th> <div><span title="ex Portland Group/PGI">Nvidia HPC C++ (ex PGI)*</span></div> </th> <th> <div>Nvidia nvcc</div> </th>
+</tr>
+</table> <div class="_attribution">
+ <p class="_attribution-p">
+ &copy; cppreference.com<br>Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.<br>
+ <a href="https://en.cppreference.com/w/c/99" class="_attribution-link">https://en.cppreference.com/w/c/99</a>
+ </p>
+</div>