<?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[Was soll das denn? Aus dem Linux-Kernel...]]></title><description><![CDATA[<p>Hallo,</p>
<p>hab grade folgendes gesehen (im Linux-Kernel 2.4)</p>
<pre><code class="language-cpp">#define INIT_LIST_HEAD(ptr) do { \
     (ptr)-&gt;next = (ptr); (ptr)-&gt;prev = (ptr); \
} while (0)
</code></pre>
<p>Wozu soll den die Schleife gut sein? Passiert doch wegen<br />
dem while(0) eh nur einmal, das ganze? Irgend nen Sinn wirds ja haben,<br />
nur versteh ich den nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Wer hilft weiter?</p>
<p>Gruss,</p>
<p>frager</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/153767/was-soll-das-denn-aus-dem-linux-kernel</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 17:28:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/153767.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Jul 2006 11:15:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 11:15:01 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hab grade folgendes gesehen (im Linux-Kernel 2.4)</p>
<pre><code class="language-cpp">#define INIT_LIST_HEAD(ptr) do { \
     (ptr)-&gt;next = (ptr); (ptr)-&gt;prev = (ptr); \
} while (0)
</code></pre>
<p>Wozu soll den die Schleife gut sein? Passiert doch wegen<br />
dem while(0) eh nur einmal, das ganze? Irgend nen Sinn wirds ja haben,<br />
nur versteh ich den nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Wer hilft weiter?</p>
<p>Gruss,</p>
<p>frager</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1101043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101043</guid><dc:creator><![CDATA[frager]]></dc:creator><pubDate>Thu, 20 Jul 2006 11:15:01 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 11:20:24 GMT]]></title><description><![CDATA[<p>soll wahrscheinlich die verwendung des semikolons am ende erzwingen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1101051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101051</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 20 Jul 2006 11:20:24 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 11:21:39 GMT]]></title><description><![CDATA[<p>frager schrieb:</p>
<blockquote>
<p>Wer hilft weiter?</p>
</blockquote>
<p>Die Kernel doku (im Styleguide), da steht drin warum man das so machen soll, hab's leider grad vergessen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1101053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101053</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Thu, 20 Jul 2006 11:21:39 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 11:24:08 GMT]]></title><description><![CDATA[<p>GPC schrieb:</p>
<blockquote>
<p>frager schrieb:</p>
<blockquote>
<p>Wer hilft weiter?</p>
</blockquote>
<p>Die Kernel doku (im Styleguide), da steht drin warum man das so machen soll, hab's leider grad vergessen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>AFAIK wird das so definiert, damit so etwas funktioniert:</p>
<pre><code class="language-cpp">if(ptr)
    INIT_LIST_HEAD(ptr);
else
    invalid_ptr();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1101059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101059</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Thu, 20 Jul 2006 11:24:08 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 11:27:04 GMT]]></title><description><![CDATA[<p>Jow, das kann gut sein. Das do-while Konstrukt war irgendeine Absicherung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1101061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101061</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Thu, 20 Jul 2006 11:27:04 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 11:32:01 GMT]]></title><description><![CDATA[<p>Kann man denn nicht ganz normal eine Block im define haben?</p>
<pre><code class="language-cpp">#define FOOBAR(blubb) { \
    foo(blubb); \
    bar(blubb); \
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1101067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101067</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Thu, 20 Jul 2006 11:32:01 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 11:32:39 GMT]]></title><description><![CDATA[<p>Na, da haette ich ja auch selbst drauf kommen koennen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Auf jeden Fall mal Danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1101069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101069</guid><dc:creator><![CDATA[frager]]></dc:creator><pubDate>Thu, 20 Jul 2006 11:32:39 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 12:09:32 GMT]]></title><description><![CDATA[<p>1310-Logik schrieb:</p>
<blockquote>
<p>Kann man denn nicht ganz normal eine Block im define haben?</p>
<pre><code class="language-cpp">#define FOOBAR(blubb) { \
    foo(blubb); \
    bar(blubb); \
}
</code></pre>
</blockquote>
<p>Probier mal mit diesem #define den von mir geposteten Code zu kompilieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1101144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101144</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Thu, 20 Jul 2006 12:09:32 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 12:12:47 GMT]]></title><description><![CDATA[<p>Hab grad kein Kompeiler zur Hand, was tut es denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1101154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101154</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Thu, 20 Jul 2006 12:12:47 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 12:17:17 GMT]]></title><description><![CDATA[<p>Dann halt mal einsetzen:</p>
<pre><code class="language-cpp">#define FOOBAR(blubb) { \
    foo(blubb); \
    bar(blubb); \
}

if(ptr)
    FOOBAR(ptr);
else
    invalid_ptr();
</code></pre>
<p>der Compiler sieht (modulo Formatierung)</p>
<pre><code class="language-cpp">if(ptr)
{ 
  foo(ptr);
  bar(ptr);
};
else
    invalid_ptr();
</code></pre>
<p>Nun klarer?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1101167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101167</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Thu, 20 Jul 2006 12:17:17 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 12:20:47 GMT]]></title><description><![CDATA[<p>Ach so, klar wie Klöschenbrühe, Du meinst, dass er am Ende ein Semikolon setzt. Tja ok, das geht nicht.</p>
<pre><code class="language-cpp">#define FOOBAR(blubb) { \
    foo(blubb); \
    bar(blubb); \
}

if(ptr)
    FOOBAR(ptr)   // und so???
else
    invalid_ptr();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1101173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101173</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Thu, 20 Jul 2006 12:20:47 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 12:24:14 GMT]]></title><description><![CDATA[<p>Ja, das ginge. Allerdings ist es halt etwas inkonsistent, wenn bei einigen Sachen ein Semikolon hinschreiben muß und bei anderen nicht darf. Deswegen der einfache Trick und schon muß man immer ein Semikolon schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1101180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101180</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Thu, 20 Jul 2006 12:24:14 GMT</pubDate></item><item><title><![CDATA[Reply to Was soll das denn? Aus dem Linux-Kernel... on Thu, 20 Jul 2006 12:24:38 GMT]]></title><description><![CDATA[<p>dann gehts natürlich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>aber wenn jemand den Code schön formatieren will, setzt er ein &quot;;&quot; und wir haben den Salat. Deshalb der Styleguide.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1101181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101181</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 20 Jul 2006 12:24:38 GMT</pubDate></item></channel></rss>