/www.cppreference.com/wiki/preprocessor/sharp
#! | 90 lines | 77 code | 13 blank | 0 comment | 0 complexity | 15b7843ca965ecfff4b998b8a7b6e3ba MD5 | raw file
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
- lang="en" dir="ltr">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>preprocessor:sharp</title>
- <meta name="generator" content="DokuWiki" />
- <meta name="robots" content="index,follow" />
- <meta name="date" content="2010-10-28T18:17:02-0700" />
- <meta name="keywords" content="preprocessor,sharp" />
- <link rel="search" type="application/opensearchdescription+xml" href="http://www.cppreference.com/wiki/lib/exe/opensearch.php" title="C++ Reference" />
- <link rel="start" href="../../index.html" />
- <link rel="contents" href="http://www.cppreference.com/wiki/preprocessor/sharp?do=index" title="Sitemap" />
- <link rel="alternate" type="application/rss+xml" title="Recent Changes" href="http://www.cppreference.com/wiki/feed.php" />
- <link rel="alternate" type="application/rss+xml" title="Current Namespace" href="http://www.cppreference.com/wiki/feed.php?mode=list&ns=preprocessor" />
- <link rel="alternate" type="text/html" title="Plain HTML" href="http://www.cppreference.com/wiki/_export/xhtml/preprocessor/sharp" />
- <link rel="alternate" type="text/plain" title="Wiki Markup" href="http://www.cppreference.com/wiki/_export/raw/preprocessor/sharp" />
- <link rel="canonical" href="sharp" />
- <link rel="stylesheet" media="screen" type="text/css" href="../lib/exe/css.php@t=custom1&tseed=1289693594" />
- <link rel="stylesheet" media="all" type="text/css" href="../lib/exe/css.php@s=all&t=custom1&tseed=1289693594" />
- <link rel="stylesheet" media="print" type="text/css" href="../lib/exe/css.php@s=print&t=custom1&tseed=1289693594" />
- <script type="text/javascript" ><!--//--><![CDATA[//><!--
- var NS='preprocessor';var JSINFO = {"id":"preprocessor:sharp","namespace":"preprocessor"};
- //--><!]]></script>
- <script type="text/javascript" charset="utf-8" src="../lib/exe/js.php@tseed=1289693594" ></script>
- </head>
- <body>
- <div class="dokuwiki export">
- <h2 class="sectionedit1"><a name="and" id="and"># and ##</a></h2>
- <div class="level2">
- <p>
- The # and ## preprocessor operators are used with the <a href="define" class="wikilink1" title="preprocessor:define">#define</a> preprocessor directive.
- </p>
- <ul>
- <li class="level1"><div class="li"> Using # causes the first argument after the # to be returned as a string in quotes. </div>
- </li>
- <li class="level1"><div class="li"> Using ## concatenates what's before the ## with what's before or after it.</div>
- </li>
- </ul>
- <p>
- For example, the command
- </p>
- <pre class="cpp code cpp"> <span class="co2">#define to_string( s ) # s</span></pre>
- <p>
- will make the compiler turn this command
- </p>
- <pre class="cpp code cpp"> <span class="kw3">cout</span> <span class="sy1"><<</span> to_string<span class="br0">(</span> Hello World<span class="sy3">!</span> <span class="br0">)</span> <span class="sy1"><<</span> endl<span class="sy4">;</span></pre>
- <p>
- into
- </p>
- <pre class="cpp code cpp"> <span class="kw3">cout</span> <span class="sy1"><<</span> <span class="st0">"Hello World!"</span> <span class="sy1"><<</span> endl<span class="sy4">;</span></pre>
- <p>
- Here is an example of the ## command:
- </p>
- <pre class="cpp code cpp"> <span class="co2">#define concatenate( a, b ) a ## b</span>
- ...
- <span class="kw4">int</span> xy <span class="sy1">=</span> <span class="nu0">10</span><span class="sy4">;</span>
- ...</pre>
- <p>
- This code will make the compiler turn
- </p>
- <pre class="cpp code cpp"> <span class="kw3">cout</span> <span class="sy1"><<</span> concatenate<span class="br0">(</span> x, y <span class="br0">)</span> <span class="sy1"><<</span> endl<span class="sy4">;</span></pre>
- <p>
- into
- </p>
- <pre class="cpp code cpp"> <span class="kw3">cout</span> <span class="sy1"><<</span> xy <span class="sy1"><<</span> endl<span class="sy4">;</span></pre>
- <p>
- which will, of course, display '10' to standard output.
- </p>
- <p>
- Related topics: <a href="define" class="wikilink1" title="preprocessor:define">#define</a>
- </p>
- </div>
- </div>
- </body>
- </html>