<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Functionen als define]]></title><description><![CDATA[<p>Ich habe eine Function gefunden die als define implementiert wurde:</p>
<pre><code>//N-te Bit in Bitarray setzen
#define BIT_SET(bit_array, N) \
        ((bit_array)[BIT_ELNUM(N)] |= (BIT_TYPE)1 &lt;&lt; BIT_NUM(N))
</code></pre>
<p>wo die Zeilenumbrüche mit \ markiert sind.<br />
kann man so eine Function auch mit einem return value schreiben, und wie sieht sie aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143828/functionen-als-define</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 19:45:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143828.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Apr 2006 08:57:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Functionen als define on Wed, 12 Apr 2006 08:57:53 GMT]]></title><description><![CDATA[<p>Ich habe eine Function gefunden die als define implementiert wurde:</p>
<pre><code>//N-te Bit in Bitarray setzen
#define BIT_SET(bit_array, N) \
        ((bit_array)[BIT_ELNUM(N)] |= (BIT_TYPE)1 &lt;&lt; BIT_NUM(N))
</code></pre>
<p>wo die Zeilenumbrüche mit \ markiert sind.<br />
kann man so eine Function auch mit einem return value schreiben, und wie sieht sie aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035727</guid><dc:creator><![CDATA[darkstar2000]]></dc:creator><pubDate>Wed, 12 Apr 2006 08:57:53 GMT</pubDate></item><item><title><![CDATA[Reply to Functionen als define on Wed, 12 Apr 2006 09:04:50 GMT]]></title><description><![CDATA[<p>Der Präprozessor arbeitet (im Gegensatz zum Compiler) zeilenweise - deshalb mußt du mit dem \ kennzeichnen &quot;die Zeile geht noch weiter&quot;. Wenn du dieses Makro (das wird übrigens nicht als &quot;Funktion&quot; bezeichnet) umwandeln willst, ist eine Inline-Funktion wohl am günstigsten:</p>
<pre><code class="language-cpp">inline void BIT_SET(BIT_TYPE* array,int N)
{
  array[BIT_ELNUM(N)] |= 1&lt;&lt;BIT_NUM(N);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1035735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035735</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 12 Apr 2006 09:04:50 GMT</pubDate></item><item><title><![CDATA[Reply to Functionen als define on Wed, 12 Apr 2006 09:06:46 GMT]]></title><description><![CDATA[<p>Das ist keine Funktion sondern ein Makro.</p>
<p>Solche Makros definiert man i.d.R. dann, wenn inline erzwungen sein muss. Allerdings ist das meisten schlechter Stil bzw., wenn es wirklich notwendig ist, sollte man es nicht in eine Funktion zurückkonvertieren. Das Teil in eine Funktion zu übersetzen wird ohne Templates auf Grund der mangelnden Typprüfung bei Makros schwierig.</p>
<p>Am besten lässt du die Finger von fremden Makros und gewöhnst dir einfach an, sie selber wo es geht zu vermeiden ...</p>
<p>EDIT: Zu spät ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1035737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1035737</guid><dc:creator><![CDATA[Reyx]]></dc:creator><pubDate>Wed, 12 Apr 2006 09:06:46 GMT</pubDate></item></channel></rss>