<?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[Probleme bei Definition in Abfrage: if(int i=f())]]></title><description><![CDATA[<p>Hallo!</p>
<p>Folgendes Code Fragment:</p>
<pre><code class="language-cpp">if(int sel=Choice1-&gt;GetSelection()!=wxNOT_FOUND) {...}
</code></pre>
<p>Das speichert mir in der Variable sel immer 1 wenn true, sprich: es wird gespeichert, ob der Vergleich true oder false zurückgibt.<br />
Das ist ja nicht ganz das was ich möchte. Ich möchte in sel drinnen stehen haben, welchen Wert GetSelection() mir zurückgibt.</p>
<p>Klammerung wäre das naheliegendste gewesen - funktioniert aber nicht da der Compiler dann wegen &quot;expected primary-expression before ‘int’&quot; schreit.</p>
<pre><code class="language-cpp">if((int sel=Choice1-&gt;GetSelection())!=wxNOT_FOUND)
</code></pre>
<p>Ich verstehs nicht. Es kann ja nicht Sinn der Sache sein, das Ergebnis in sel zu speichern, denn das weiß ich aufgrund der Verzweigung in if oder else sowieso. Ich möchte einfach nur den Wert von GetSelection in sel drinnen haben und die Variable sel so lokal wie möglich haben.</p>
<p>Irgendwelche Ideen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/305397/probleme-bei-definition-in-abfrage-if-int-i-f</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 23:17:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305397.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 28 Jun 2012 00:30:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme bei Definition in Abfrage: if(int i=f()) on Thu, 28 Jun 2012 00:30:50 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Folgendes Code Fragment:</p>
<pre><code class="language-cpp">if(int sel=Choice1-&gt;GetSelection()!=wxNOT_FOUND) {...}
</code></pre>
<p>Das speichert mir in der Variable sel immer 1 wenn true, sprich: es wird gespeichert, ob der Vergleich true oder false zurückgibt.<br />
Das ist ja nicht ganz das was ich möchte. Ich möchte in sel drinnen stehen haben, welchen Wert GetSelection() mir zurückgibt.</p>
<p>Klammerung wäre das naheliegendste gewesen - funktioniert aber nicht da der Compiler dann wegen &quot;expected primary-expression before ‘int’&quot; schreit.</p>
<pre><code class="language-cpp">if((int sel=Choice1-&gt;GetSelection())!=wxNOT_FOUND)
</code></pre>
<p>Ich verstehs nicht. Es kann ja nicht Sinn der Sache sein, das Ergebnis in sel zu speichern, denn das weiß ich aufgrund der Verzweigung in if oder else sowieso. Ich möchte einfach nur den Wert von GetSelection in sel drinnen haben und die Variable sel so lokal wie möglich haben.</p>
<p>Irgendwelche Ideen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227986</guid><dc:creator><![CDATA[if nix geht]]></dc:creator><pubDate>Thu, 28 Jun 2012 00:30:50 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei Definition in Abfrage: if(int i=f()) on Thu, 28 Jun 2012 00:53:06 GMT]]></title><description><![CDATA[<blockquote>
<p>expected primary-expression before ‘int</p>
</blockquote>
<p>Alle Klammern geschlossen?</p>
<blockquote>
<p>Das ist ja nicht ganz das was ich möchte. Ich möchte in sel drinnen stehen haben, welchen Wert GetSelection() mir zurückgibt.</p>
<p>....</p>
<p>Es kann ja nicht Sinn der Sache sein, das Ergebnis in sel zu speichern, denn das weiß ich aufgrund der Verzweigung in if oder else sowieso.</p>
<p>..<br />
Ich verstehs nicht. Es kann ja nicht Sinn der Sache sein, das Ergebnis in sel zu speichern, denn das weiß ich aufgrund der Verzweigung in if oder else sowieso. Ich möchte einfach nur den Wert von GetSelection in sel drinnen haben und die Variable sel so lokal wie möglich haben.</p>
</blockquote>
<p>Also benötigst du sel später noch?Ich verstehe nicht, ob du sel nun innerhalb der if-Schleife benötigst oder nicht.<br />
Und wenn aus welchem Grund sollte es nötig sein? <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>Falls nicht, dann sollte es so reichen.</p>
<pre><code class="language-cpp">if(Choice1-&gt;GetSelection()!= wxNOT_FOUND) {...}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2227988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227988</guid><dc:creator><![CDATA[zuckerlie]]></dc:creator><pubDate>Thu, 28 Jun 2012 00:53:06 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei Definition in Abfrage: if(int i=f()) on Thu, 28 Jun 2012 00:54:56 GMT]]></title><description><![CDATA[<p>Mach Klammern um die Zuweisung.<br />
if((sel=Choice1-&gt;GetSelection())!=wxNOT_FOUND) {...}</p>
<p>Edit: Oh, nicht weit genug gelesen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2227989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227989</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 28 Jun 2012 00:54:56 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei Definition in Abfrage: if(int i=f()) on Thu, 28 Jun 2012 00:57:15 GMT]]></title><description><![CDATA[<p>So:</p>
<pre><code class="language-cpp">{
   int sel;  //so lokal wie möglich, deshalb in einem extra Scope
   if((sel=Choice1-&gt;GetSelection())!=wxNOT_FOUND) {...} 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2227990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2227990</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 28 Jun 2012 00:57:15 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei Definition in Abfrage: if(int i=f()) on Thu, 28 Jun 2012 07:21:55 GMT]]></title><description><![CDATA[<p>Belli schrieb:</p>
<blockquote>
<p>So:</p>
<pre><code class="language-cpp">{
   int sel;  //so lokal wie möglich, deshalb in einem extra Scope
   if((sel=Choice1-&gt;GetSelection())!=wxNOT_FOUND) {...} 
}
</code></pre>
</blockquote>
<p>Ich würde gleich</p>
<pre><code class="language-cpp">{
   int sel = Choice1-&gt;GetSelection();
   if(sel != wxNOT_FOUND) {...} 
}
</code></pre>
<p>schreiben, ist doch viel besser erkennbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228007</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 28 Jun 2012 07:21:55 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei Definition in Abfrage: if(int i=f()) on Thu, 28 Jun 2012 11:06:01 GMT]]></title><description><![CDATA[<p>Ok na dann ist es natürlich auch kein problem wenn ich int sel bereits vor der if abfrage definiere.<br />
Hab halt gelesen dass man in c++ dass auch innerhalb von if(...) machen kann und das wäre in dem fall ideal gewesen, da ich die variable sel genau 2mal brauche: Einmal für den vergleich if(...) und das zweite mal im scope direkt nach dem if () {...}.</p>
<p>Sinn sehe ich aber wirklich keinen, wenn in der variable dann eh nur true/false gespeichert werden kann. Was hat sich mr. stroustrup denn dabei gedacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228112</guid><dc:creator><![CDATA[if nix geht]]></dc:creator><pubDate>Thu, 28 Jun 2012 11:06:01 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei Definition in Abfrage: if(int i=f()) on Thu, 28 Jun 2012 11:24:42 GMT]]></title><description><![CDATA[<p>wieso &quot;dabei gedacht hat&quot;?<br />
Wenn ich das mit meine begrenzten Verständnis richtig sehe, dann wird der Variablen sel das Ergebnis des Vergleiches Choice1-&gt;GetSelection())!=wxNOT_FOUND zugewiesen, was entweder true oder false ergibt, oder? Werden Ausdrücke solcher Art nicht in der Regel von rechts nach links ausgewertet?</p>
<p>Nebenbei finde ich solche Konstrukte schauderhaft und das von Hacker gepostete Beispiel ist imho sehr viel einfacher nachzuvollziehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228118</guid><dc:creator><![CDATA[Quisslich]]></dc:creator><pubDate>Thu, 28 Jun 2012 11:24:42 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei Definition in Abfrage: if(int i=f()) on Thu, 28 Jun 2012 11:32:35 GMT]]></title><description><![CDATA[<p>if nix geht schrieb:</p>
<blockquote>
<p>Hab halt gelesen dass man in c++ dass auch innerhalb von if(...) machen kann und das wäre in dem fall ideal gewesen, da ich die variable sel genau 2mal brauche:</p>
</blockquote>
<p>Das ist auch richtig so, aber die Kleinigkeit mit schweren Folgen, die hier fehlt ist: Man kann eines von beidem haben, einen Ausdruck (Expression, d.h. eine logische Aussage) oder eine Deklaration, nicht beides gleichzeitig. Da es keine Möglichkeit gibt, das eine in das andere umzubiegen, muss man sich entscheiden, was man wirklich in der Abfrage braucht und das jeweils andere über die hier schon gezeigten (nicht sehr aufwändigen) Workarounds erreichen.</p>
<blockquote>
<p>Sinn sehe ich aber wirklich keinen, wenn in der variable dann eh nur true/false gespeichert werden kann. Was hat sich mr. stroustrup denn dabei gedacht?</p>
</blockquote>
<p>Es kann nicht nur true und flase gespeichert werden. Auf diese Weise kann man zum Beispiel prüfen, ob ein int-Funktionsrückgabewert nicht 0 ist und mit diesem dann weiterarbeiten. Ist vermutlich eher etwas für C-Bibliotheken, wo dies für Fehlercodes oft in dieser Art gemacht wird. Überhaupt sieht man Deklarationen in if-Bedingungen so gut wie nie. Es ist zwar recht intuitiv klar, was passiert, aber im Zweifelsfall ist es einfach nur unlesbarer, da ungewöhnlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228119</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 28 Jun 2012 11:32:35 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei Definition in Abfrage: if(int i=f()) on Thu, 28 Jun 2012 14:29:15 GMT]]></title><description><![CDATA[<p>ok jetzt ists mir klar, danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228179</guid><dc:creator><![CDATA[if nix geht]]></dc:creator><pubDate>Thu, 28 Jun 2012 14:29:15 GMT</pubDate></item></channel></rss>