<?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[enum oder define?]]></title><description><![CDATA[<p>Hi,<br />
ich arbeite derzeit an einem größeren Projekt und stehe vor folgendem Problem:<br />
Ich benötige für eine große Anzahl von Objekten eine eindeutige ID, die von Werten und dem Typen des Objekts abhängt. Derzeit sieht das so aus:</p>
<pre><code class="language-cpp">typedef unsigned long SoRID;

#define ES_CALC1 10001
#define ES_CALC2 10002
// usw. //
</code></pre>
<p>Mir persönlich gefällt diese Lösung nicht wirklich. Daher habe ich mir folgendes überlegt:</p>
<pre><code class="language-cpp">enum SoRID
{
   ES_CALC1 = 10001,
   ES_CALC2 = 10002,
   // usw. //
}
</code></pre>
<p>Was für Argumente gibt es für bzw. gegen die beiden Vorschläge? Wie sieht es mit der Performance aus?<br />
Und: Gibt es Alternativen?</p>
<p>mfg Kenrik</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/155196/enum-oder-define</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 04:29:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/155196.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Aug 2006 13:27:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to enum oder define? on Thu, 03 Aug 2006 13:27:30 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich arbeite derzeit an einem größeren Projekt und stehe vor folgendem Problem:<br />
Ich benötige für eine große Anzahl von Objekten eine eindeutige ID, die von Werten und dem Typen des Objekts abhängt. Derzeit sieht das so aus:</p>
<pre><code class="language-cpp">typedef unsigned long SoRID;

#define ES_CALC1 10001
#define ES_CALC2 10002
// usw. //
</code></pre>
<p>Mir persönlich gefällt diese Lösung nicht wirklich. Daher habe ich mir folgendes überlegt:</p>
<pre><code class="language-cpp">enum SoRID
{
   ES_CALC1 = 10001,
   ES_CALC2 = 10002,
   // usw. //
}
</code></pre>
<p>Was für Argumente gibt es für bzw. gegen die beiden Vorschläge? Wie sieht es mit der Performance aus?<br />
Und: Gibt es Alternativen?</p>
<p>mfg Kenrik</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1109929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109929</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Thu, 03 Aug 2006 13:27:30 GMT</pubDate></item><item><title><![CDATA[Reply to enum oder define? on Thu, 03 Aug 2006 13:33:52 GMT]]></title><description><![CDATA[<p>Dafür: Sauber und Typsicher<br />
Dagegen: Nichts (imho) <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="😉"
    /><br />
Performance: Enums sind für den Compiler genauso konstant wie durch den Präprozessor ersetzte Zahlenwerte</p>
<p>Alternative: const int (aber ältere C++ Compiler sehen diese u.U. nicht als Compiletime-Konstanten an)</p>
<p>EDIT:<br />
Ob das mit dem älteren Compiler auf Dich zutrifft, kannst Du am Besten mit folgendem Schnippsel überprüfen:</p>
<pre><code class="language-cpp">const int xyz = 100;
int array[xyz];
</code></pre>
<p>Ein &quot;älterer&quot; Compiler wird Dir um die Ohren hauen dass xyz nicht compiletime-konstant ist. Schalte aber die Spracherweiterungen des Compilers ab, denn der G++ erlaubt z.B. Arrays variabler Länge (wenn auch imho nicht auf globaler Ebene)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1109934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1109934</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 03 Aug 2006 13:33:52 GMT</pubDate></item></channel></rss>