<?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[Return mit magic Numbers oder nicht???]]></title><description><![CDATA[<p>Hallo NG</p>
<p>ich habe eine Stilfrage:</p>
<p>Ist folgender Code besser</p>
<pre><code class="language-cpp">bool checkValue(int value) {
  if ( 0 == value ) {
    return false;
  }

  return true;
}
</code></pre>
<p>oder folgender</p>
<pre><code class="language-cpp">bool checkValue(int value) {
  bool result = true;

  if ( 0 == value ) {
    result = false;
  }

  return result;
}
</code></pre>
<p>Und warum ist welcher besser?</p>
<p>Grüße M. Incani</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/222279/return-mit-magic-numbers-oder-nicht</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 11:27:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/222279.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Sep 2008 09:05:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 09:05:21 GMT]]></title><description><![CDATA[<p>Hallo NG</p>
<p>ich habe eine Stilfrage:</p>
<p>Ist folgender Code besser</p>
<pre><code class="language-cpp">bool checkValue(int value) {
  if ( 0 == value ) {
    return false;
  }

  return true;
}
</code></pre>
<p>oder folgender</p>
<pre><code class="language-cpp">bool checkValue(int value) {
  bool result = true;

  if ( 0 == value ) {
    result = false;
  }

  return result;
}
</code></pre>
<p>Und warum ist welcher besser?</p>
<p>Grüße M. Incani</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579603</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Wed, 10 Sep 2008 09:05:21 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 09:08:06 GMT]]></title><description><![CDATA[<p>Das ist beides unnötig kompliziert.</p>
<pre><code class="language-cpp">bool checkValue(int value) {
  return value != 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1579606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579606</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 10 Sep 2008 09:08:06 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 09:13:16 GMT]]></title><description><![CDATA[<p>Das wollte ich jetzt nicht wissen. Das Beispiel war aus der Luft gegriffen.</p>
<p>Gruß,<br />
M. Incani</p>
<p>MFK schrieb:</p>
<blockquote>
<p>Das ist beides unnötig kompliziert.</p>
<pre><code class="language-cpp">bool checkValue(int value) {
  return value != 0;
}
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1579613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579613</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Wed, 10 Sep 2008 09:13:16 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 09:40:15 GMT]]></title><description><![CDATA[<p>Wo siehst du da Magic Numbers?<br />
true und false sind ganz siche keine Magic Numbers.</p>
<p>Davon abgesehen ist dein Beispiel gerade deswegen vollkommen sinnlos weil es aus der Luft gegriffen ist, die Antwort von MFK daher passend.<br />
Liefere ein besseres Beispiel ab dann bekommst du bessere Antworten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579623</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 10 Sep 2008 09:40:15 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 09:49:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int sehr_schlecht() {
  int res;
  if(foo()) 
    res = bar();
  else {
    foobar();
    foobaz();
    res = baz();
  }
  return res;
}

int schlecht() {
  if(!foo()) {
    foobar();
    foobaz();
    return baz();
  } else {
    return bar();
  }
}

int gut() {
  if(foo()) 
    return bar();

  foobar();
  foobaz();
  return baz();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1579635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579635</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 10 Sep 2008 09:49:44 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 10:12:00 GMT]]></title><description><![CDATA[<p>Die Variante den Rückgabewert nicht hinauszuzögern finde ich auch besser. Mithilfe von RAII ist das sehr elegant zu handhaben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579657</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 10 Sep 2008 10:12:00 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 11:00:21 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int sehr_schlecht()
int schlecht()
int gut()
</code></pre>
</blockquote>
<p>lässt sich das auch objektiv begründen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579680</guid><dc:creator><![CDATA[knall der heuler]]></dc:creator><pubDate>Wed, 10 Sep 2008 11:00:21 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 11:08:10 GMT]]></title><description><![CDATA[<p>knall der heuler schrieb:</p>
<blockquote>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int sehr_schlecht()
int schlecht()
int gut()
</code></pre>
</blockquote>
<p>lässt sich das auch objektiv begründen?</p>
</blockquote>
<p>Schau dir den Code der einzelnen Funktionen an, dann siehst du als normaler Programmierer sofort, dass die Struktur bei den ersten beiden kaum durchschaubar ist beim letzten Fall, aber sofort die unterschiedlichen Aktionen klar werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579681</guid><dc:creator><![CDATA[Tippgeber]]></dc:creator><pubDate>Wed, 10 Sep 2008 11:08:10 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 11:15:16 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>so wie ich Dich verstehe, ist die letzte Lösung aus reiner Lesbarkeit die bessere Lösung. Ich hätte nun gedacht, zwecks Debuggen wäre es besser in den Funktionen zu sehen was sie ermitteln.</p>
<p>Gruß,<br />
M. Incani</p>
<p>Tippgeber schrieb:</p>
<blockquote>
<p>knall der heuler schrieb:</p>
<blockquote>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int sehr_schlecht()
int schlecht()
int gut()
</code></pre>
</blockquote>
<p>lässt sich das auch objektiv begründen?</p>
</blockquote>
<p>Schau dir den Code der einzelnen Funktionen an, dann siehst du als normaler Programmierer sofort, dass die Struktur bei den ersten beiden kaum durchschaubar ist beim letzten Fall, aber sofort die unterschiedlichen Aktionen klar werden.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1579686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579686</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Wed, 10 Sep 2008 11:15:16 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 11:15:55 GMT]]></title><description><![CDATA[<p>Das Problem bei der Weitergabe von Rückgabewerten ist meist das dann ziemlich tiefe Verschachtelungen rauskommen können, um so länger die Funktion wird.</p>
<p>Wobei das Verlassen von Funktionen mittendrin auch unübersichtlich sein kann. Je nach Komplexität der Funktion zumindest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579687</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 10 Sep 2008 11:15:55 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 11:19:41 GMT]]></title><description><![CDATA[<p>Deshalb dachte ich auch es wäre besser die ermittelten Ergebnisse in einer Variable zu speichern und dann am Ende die Variable zurück zu geben.</p>
<p>Gruß,<br />
M. Incani</p>
<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Das Problem bei der Weitergabe von Rückgabewerten ist meist das dann ziemlich tiefe Verschachtelungen rauskommen können, um so länger die Funktion wird.</p>
<p>Wobei das Verlassen von Funktionen mittendrin auch unübersichtlich sein kann. Je nach Komplexität der Funktion zumindest.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1579689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579689</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Wed, 10 Sep 2008 11:19:41 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 12:17:55 GMT]]></title><description><![CDATA[<p>BlackPepper schrieb:</p>
<blockquote>
<p>Deshalb dachte ich auch es wäre besser die ermittelten Ergebnisse in einer Variable zu speichern und dann am Ende die Variable zurück zu geben.</p>
</blockquote>
<p>Nein, wir wollen nie Code so designen dass er leicht debugbar ist. Denn das hängt stark vom Debugger ab. Und es ist besser gleich fehlerfreien code zu schreiben.</p>
<p>Deshalb nie ans debuggen denken beim code schreiben.</p>
<p>Davon abgesehen bringt ein single-entry-single-exit fürs debuggen sowieso nichts.</p>
<p>Single-Entry-Single-Exit erhöht aber immer die komplexität des Codes. Und das ist etwas dass wir nie nie nie wollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579712</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Wed, 10 Sep 2008 12:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 12:37:27 GMT]]></title><description><![CDATA[<p>Hallo Shade Of Mine,</p>
<p>Erst mal Danke für Deine Antwort. Das Single Entry Single Exit die Komplexität erhöht, hat mir in Deinem vorangegangenen Beispielen eingeleuchtet. Aber warum bringt das nichts beim Debuggen.</p>
<pre><code class="language-cpp">double sum(double a, double b){
  return a + b;
}

double calc(double a, double b){
  return sum(a, b) * sum(a, b);
}

int main(int argc, char *argv[]){
 cout &lt;&lt; &quot;(a+b)^2=&quot; &lt;&lt; calc(2.0,3.0) &lt;&lt; endl;
}
</code></pre>
<p>Hier würde ich doch einen Fehler erst in main sehen und nicht schon früher.</p>
<p>Gruß max</p>
<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>BlackPepper schrieb:</p>
<blockquote>
<p>Deshalb dachte ich auch es wäre besser die ermittelten Ergebnisse in einer Variable zu speichern und dann am Ende die Variable zurück zu geben.</p>
</blockquote>
<p>Nein, wir wollen nie Code so designen dass er leicht debugbar ist. Denn das hängt stark vom Debugger ab. Und es ist besser gleich fehlerfreien code zu schreiben.</p>
<p>Deshalb nie ans debuggen denken beim code schreiben.</p>
<p>Davon abgesehen bringt ein single-entry-single-exit fürs debuggen sowieso nichts.</p>
<p>Single-Entry-Single-Exit erhöht aber immer die komplexität des Codes. Und das ist etwas dass wir nie nie nie wollen.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1579719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579719</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Wed, 10 Sep 2008 12:37:27 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 12:43:39 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Und es ist besser gleich fehlerfreien code zu schreiben</p>
</blockquote>
<p>Eindeutig und ergänzend: ...und der gut lesbar (wegen Wartung) und überschaubar ist (Aber da sind wir uns wohl ohnehin einig).</p>
<p>Mein letzter &quot;Programmierchef&quot; war ein Verfechter der &quot;single-entry-single-exit&quot; aus &quot;Performancegründen&quot; und der &quot;Übersichtlichkeit&quot;. Letzteres war ohnehin hinfällig, wenn man sah wie seine Klassen teilweise 10000+ Codezeilen (ohne Kommentar) und Funktionen auch mal an den 1000 Zeilen kratzen. Ersteres soll wohl mal in den C++ Urzeiten tatsächlich gültigkeit gehabt haben, ist heutzutage aber gänzlich hinfällig (und wenn ich mir die Aussagen einiger im Forum anschaue sogar inzwischen eher das Gegenteil).</p>
<p>Ich bin wie hier wohl die meisten ein Verfechter der Strategie: Funktionsaustritt wenn es sinn macht, und nicht unnötige Schachtelungen, die - wie ich finde - eher Code unübersichtlich als gut lesbar. Und wenn man zudem gewisse Regel macht das der Code einer Funktion maximal eine oder vielleicht noch 2 Bildschirmseiten füllen darf, ist die Komplexität meistens auch kein Thema.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579725</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 10 Sep 2008 12:43:39 GMT</pubDate></item><item><title><![CDATA[Reply to Return mit magic Numbers oder nicht??? on Wed, 10 Sep 2008 12:53:32 GMT]]></title><description><![CDATA[<p>BlackPepper schrieb:</p>
<blockquote>
<pre><code class="language-cpp">double sum(double a, double b){
  return a + b;
}

[...]
</code></pre>
<p>Hier würde ich doch einen Fehler erst in main sehen und nicht schon früher.</p>
</blockquote>
<p>Du musst deine Ergebnisse nicht erst in einer Variablen speichern um im Debugger sehen zu können was drin steht. Viele Debugger (vor allem in IDEs)bieten die Möglichkeit, den Wert von ganzen Ausdrücken zu berechnen. Du könntest also einen breakpoint in deine Funktion sum setzen und dir dort den Ausdruck &quot;a+b&quot; anzeigen lassen - nur bei Ausdrücken mit Nebeneffekten wäre ich da vorsichtig, weil die eine Änderung im Programm ergeben, die eigentlich garnicht im Code steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1579732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1579732</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 10 Sep 2008 12:53:32 GMT</pubDate></item></channel></rss>