Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
C preprocessor
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
====Token stringification operator==== The '''stringification operator''' (a.k.a. stringizing operator), denoted by <code>#</code> converts a token into a [[string literal]], escaping any quotes or backslashes as needed. For definition: <syntaxhighlight lang="cpp"> #define str(s) #s </syntaxhighlight> <code>str(\n)</code> expands to <code>"\n"</code> and <code>str(p = "foo\n";)</code> expands to <code>"p = \"foo\\n\";"</code>. If stringification of the expansion of a macro argument is desired, two levels of macros must be used. For definition: <syntaxhighlight lang="cpp"> #define xstr(s) str(s) #define str(s) #s #define foo 4 </syntaxhighlight> <code>str(foo)</code> expands to "foo" and <code>xstr(foo)</code> expands to "4". A macro argument cannot be combined with additional text and then stringified. However, a series of adjacent string literals and stringified arguments, also string literals, are concatenated by the C compiler.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)