<?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[Unterstriche in Bezeichnern]]></title><description><![CDATA[<p>Hallo,</p>
<p>Unterstriche und Grossbuchstaben am Anfang oder doppelte Unterstriche sind bei Bezeichnern ja verboten, weil sie für Compiler und Implementierung reserviert sind.</p>
<p>Was kann denn passieren, wenn man es doch tut? Das Schlimmste kann ja sein, dass ein Bezeichner sich mit einem vorgegebenen deckt und man deshalb ein fehlerhaftes Programm erhält. Ich habe nicht vor, Unterstriche zu verwenden, aber mich würde das schon mal genauer interessieren. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Gibt es jemanden, der deswegen Probleme bekommen hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230653/unterstriche-in-bezeichnern</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 05:43:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230653.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 30 Dec 2008 13:31:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unterstriche in Bezeichnern on Tue, 30 Dec 2008 13:31:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Unterstriche und Grossbuchstaben am Anfang oder doppelte Unterstriche sind bei Bezeichnern ja verboten, weil sie für Compiler und Implementierung reserviert sind.</p>
<p>Was kann denn passieren, wenn man es doch tut? Das Schlimmste kann ja sein, dass ein Bezeichner sich mit einem vorgegebenen deckt und man deshalb ein fehlerhaftes Programm erhält. Ich habe nicht vor, Unterstriche zu verwenden, aber mich würde das schon mal genauer interessieren. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Gibt es jemanden, der deswegen Probleme bekommen hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637259</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 30 Dec 2008 13:31:30 GMT</pubDate></item><item><title><![CDATA[Reply to Unterstriche in Bezeichnern on Tue, 30 Dec 2008 14:05:10 GMT]]></title><description><![CDATA[<p>Ich hatte jetzt noch nie Probleme damit (weil auch keine Namen mit _ anfange).<br />
Und ich denke mal, dass auch, wenn ich mit Unterstrichen anfangen würde, hätte ich keine Probleme. Alleine wegen dem Namensschema und Namespaces. Das einzige, wo ich mir wirklich Probleme denken könnte wären bei defines. Da könnte ich mir vorstellen, dass ich irgendwann einen schon gewählten Bezeichner nehmen könnte.</p>
<p>Ich denke, dass du einen schwer zu findenden Fehler hast, oder im schlimmsten Fall keinen Fehler, sondern dass es sich kompilieren lässt, zur Laufzeit dann aber irgend etwas falsches macht. Das dann zu finden ist imo recht schwer. (Weil man natürlich zu letzt an den Namen denkt. ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637273</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 30 Dec 2008 14:05:10 GMT</pubDate></item><item><title><![CDATA[Reply to Unterstriche in Bezeichnern on Tue, 30 Dec 2008 14:23:15 GMT]]></title><description><![CDATA[<p>Eigentlich kann so ziemlich alles passieren, je nachdem was du verdeckst, aber am wahrscheinlichsten ist doch das nichts passiert?</p>
<blockquote>
<p>(Weil man natürlich zu letzt an den Namen denkt. )</p>
</blockquote>
<p>z.B. wenn man versucht BOOST_FUSION_ADAPT_STRUCT mit nem vector zu benutzen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637281</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Tue, 30 Dec 2008 14:23:15 GMT</pubDate></item><item><title><![CDATA[Reply to Unterstriche in Bezeichnern on Tue, 30 Dec 2008 14:34:56 GMT]]></title><description><![CDATA[<p>also normalerweise compiliert das programm nicht, wenn du einen namen nimmst, der echt schon weg ist.</p>
<pre><code class="language-cpp">int __asm=5;
</code></pre>
<p>nur gibt es keine garantie, was passieren wird. siehe auch &quot;nasal demons&quot;.<br />
und du willst es nicht riskieren, daß der fehler zu gelegentlich auftauchenden schutzverletzungen führt und erst beim kunden auftaucht.</p>
<p>passiert ist mir dabei noch nichts. ich hatte nur mal eine kollision mit einer ganz verrückten header-datei, die makros namens min und max definiert hat und meine lokalen variablen dieses namen zerschossen hat. der fehler war nicht einfach zu finden, da die compilerausgabe hier ablolut nicht hilfreich ist.</p>
<p>wie wäre das? ich inkludiere etwas mit std::, dann mache ich was böses mit dem namen des initialisierers von std::cout, dann inkludiere ich &lt;iostream&gt; und hoffe auf einen absturz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637284</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 30 Dec 2008 14:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to Unterstriche in Bezeichnern on Tue, 30 Dec 2008 16:44:13 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Das Schlimmste kann ja sein, dass ein Bezeichner sich mit einem vorgegebenen deckt</p>
</blockquote>
<p>Wenn es sich nur um einen vergebenen <em>Bezeichner</em> handelt ist die Welt noch weitgehend in Ordnung (außer dass der Compiler dir den Bezeichner um die Ohren wirft). Aber stell dir mal vor es handelt sich um Makros oder irgendwelche Makro-ähnliche Compilerinnereien, dann kannst du einen großen Topf voller unverständlicher Fehlermeldungen bekommen (schlecht) oder der Compiler macht sang- und klanglos die Grätsche (noch schlechter) und lässt dich mit einem großen &quot;HÄ?&quot; im Gesicht sitzen. Was dann?<br />
Lieber gleich klein beigeben. Der Compiler hat die Macht, und führende Unterstriche sind sein Territorium <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Seis drum.<br />
Guten Rutsch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637371</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 30 Dec 2008 16:44:13 GMT</pubDate></item><item><title><![CDATA[Reply to Unterstriche in Bezeichnern on Tue, 30 Dec 2008 16:45:47 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Gibt es jemanden, der deswegen Probleme bekommen hat?</p>
</blockquote>
<p>Der Onkel meines Fahrschullehrers kennt einen Postboten der einen Cousin hat der Software entwickelt und dessen Kolege soll schon mal solche Probleme gehabt haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637373</guid><dc:creator><![CDATA[Jagibts]]></dc:creator><pubDate>Tue, 30 Dec 2008 16:45:47 GMT</pubDate></item><item><title><![CDATA[Reply to Unterstriche in Bezeichnern on Tue, 30 Dec 2008 18:00:12 GMT]]></title><description><![CDATA[<p>Also ich sehe die grösste Gefahr schon auch von Makros. Einmal von den C-API's, die genutzt werden gibt es meistens ja Namespaces, die einen von Kollisionen schützen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a>:<br />
Ich hasse das min/max aus den Windos Headern. Damit ich da keinen define Krieg anfangen musst, darf ich (und wahrscheinlich ein paar andere) std::min und std::max immer auf die spezielle Art (mit den Klammern) benutzen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1637405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637405</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 30 Dec 2008 18:00:12 GMT</pubDate></item><item><title><![CDATA[Reply to Unterstriche in Bezeichnern on Wed, 31 Dec 2008 00:37:34 GMT]]></title><description><![CDATA[<blockquote>
<p>Was kann denn passieren, wenn man es doch tut?</p>
</blockquote>
<p>Du kannst z.B. beim Ableiten von Klassen der Standard C++ Library Probleme mit virtuellen Funktionen bekommen.</p>
<pre><code class="language-cpp">// ---- Standard C++ Library Code ----

namespace std
{

class _TreeBase
{
    // ...
    virtual void _Foo() = 0;
    // ...
};

template &lt;class T, ...&gt; class map : private _TreeBase
{
    // ...
    virtual void _Foo()
    {
        // ...
        // map implementiert _Foo, damit _TreeBase irgendwelche &quot;map-spezifischen&quot; Aktionen auslösen kann
    }
    // ...
};

} // namespace std

// ---- Eigener Code ----

class Bar : map&lt;int&gt;
{
    void _Foo() // unbeabsichtigter override von std::_TreeBase::_Foo !
    {
    }
};
</code></pre>
<p>Das wäre ein Beispiel für einen &quot;stillen&quot; Fehler der, also einen wo das Programm noch fehlerfrei compiliert, aber dann nicht das tut was man möchte.</p>
<p>Fehler die dazu führen dass es Fehler beim Compilieren gibt, gibt's natürlich noch viel mehr, speziell wenns um Makros geht (was ja schon erwähnt wurde)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637585</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 31 Dec 2008 00:37:34 GMT</pubDate></item><item><title><![CDATA[Reply to Unterstriche in Bezeichnern on Wed, 31 Dec 2008 11:16:52 GMT]]></title><description><![CDATA[<p>Danke für die Antworten, besonders hustbaers Variante hat mich überzeugt. Wobei das natürlich auch in anderen Bibliotheken mal vorkommen kann, dass man aus Versehen einen bereits vorgegebenen Bezeichner wählt und damit nicht das gewünschte Verhalten erzielt (in anderen Libs haben Bezeichner ja selten Unterstriche und Grossbuchstaben am Anfang)...</p>
<p>Aber ich werde mich hüten, es gibt ja eigentlich genügend Möglichkeiten, normale Bezeichner und Makros zu wählen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637659</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 31 Dec 2008 11:16:52 GMT</pubDate></item></channel></rss>