diff options
| author | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
| commit | 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch) | |
| tree | f1190704f78f04a2b0b4c977d20fe96a828377f1 /devdocs/gcc~13/push_002fpop-macro-pragmas.html | |
new repository
Diffstat (limited to 'devdocs/gcc~13/push_002fpop-macro-pragmas.html')
| -rw-r--r-- | devdocs/gcc~13/push_002fpop-macro-pragmas.html | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/devdocs/gcc~13/push_002fpop-macro-pragmas.html b/devdocs/gcc~13/push_002fpop-macro-pragmas.html new file mode 100644 index 00000000..6b48387a --- /dev/null +++ b/devdocs/gcc~13/push_002fpop-macro-pragmas.html @@ -0,0 +1,18 @@ +<div class="subsection-level-extent" id="Push_002fPop-Macro-Pragmas"> <div class="nav-panel"> <p> Next: <a href="function-specific-option-pragmas" accesskey="n" rel="next">Function Specific Option Pragmas</a>, Previous: <a href="visibility-pragmas" accesskey="p" rel="prev">Visibility Pragmas</a>, Up: <a href="pragmas" accesskey="u" rel="up">Pragmas Accepted by GCC</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="subsection" id="Push_002fPop-Macro-Pragmas-1"><span>6.62.14 Push/Pop Macro Pragmas<a class="copiable-link" href="#Push_002fPop-Macro-Pragmas-1"> ¶</a></span></h1> <p>For compatibility with Microsoft Windows compilers, GCC supports ‘<samp class="samp">#pragma push_macro(<var class="var">"macro_name"</var>)</samp>’ and ‘<samp class="samp">#pragma pop_macro(<var class="var">"macro_name"</var>)</samp>’. </p> <dl class="table"> <dt> +<span><code class="code">#pragma push_macro(<var class="var">"macro_name"</var>)</code><a class="copiable-link" href="#index-pragma_002c-push_005fmacro"> ¶</a></span> +</dt> <dd> +<p>This pragma saves the value of the macro named as <var class="var">macro_name</var> to the top of the stack for this macro. </p> </dd> <dt> +<span><code class="code">#pragma pop_macro(<var class="var">"macro_name"</var>)</code><a class="copiable-link" href="#index-pragma_002c-pop_005fmacro"> ¶</a></span> +</dt> <dd><p>This pragma sets the value of the macro named as <var class="var">macro_name</var> to the value on top of the stack for this macro. If the stack for <var class="var">macro_name</var> is empty, the value of the macro remains unchanged. </p></dd> </dl> <p>For example: </p> <div class="example smallexample"> <pre class="example-preformatted" data-language="cpp">#define X 1 +#pragma push_macro("X") +#undef X +#define X -1 +#pragma pop_macro("X") +int x [X];</pre> +</div> <p>In this example, the definition of X as 1 is saved by <code class="code">#pragma +push_macro</code> and restored by <code class="code">#pragma pop_macro</code>. </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/Push_002fPop-Macro-Pragmas.html" class="_attribution-link">https://gcc.gnu.org/onlinedocs/gcc-13.1.0/gcc/Push_002fPop-Macro-Pragmas.html</a> + </p> +</div> |
