<?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[globale variabeln in eine funktion verändern]]></title><description><![CDATA[<p>hallo zusammen ich das oben genannte vorhaben verschut zu lösen das ganze sieht so aus</p>
<pre><code class="language-cpp">//varStart
 char liftPosLive = 0;
 char liftPosPast = 0;
//varend

unsigned char liftPos(unsigned char* bytes) {
    switch (bytes[1]) {
     case 14 :
          return 3;
  liftPosLife = 3;
  liftPosPast = 2;
          break;
   case 13 :
          return 2;
  liftPosLife = 2;
  liftPosPast = 1;
         break;
     case 11 :
         return 1;
  liftPosLife = 1;
  liftPosPast = 0;
          break;
     case 7 :
          return 0;
  liftPosLife = 0;
  liftPosPast = 0;
         break;
    }
}
</code></pre>
<p>jedoch bekomme ich immer die diese fehler meldung</p>
<blockquote>
<p>S7_Roh.c: In function »unsigned char liftPos(unsigned char*)«:<br />
S7_Roh.c:194: Fehler: »liftPosLife« wurde in diesem Gültigkeitsbereich nicht definiert</p>
</blockquote>
<p>kann mir einer sagen wo da das problem ist ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/211843/globale-variabeln-in-eine-funktion-verändern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 11:24:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/211843.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Apr 2008 12:49:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to globale variabeln in eine funktion verändern on Mon, 28 Apr 2008 12:50:17 GMT]]></title><description><![CDATA[<p>hallo zusammen ich das oben genannte vorhaben verschut zu lösen das ganze sieht so aus</p>
<pre><code class="language-cpp">//varStart
 char liftPosLive = 0;
 char liftPosPast = 0;
//varend

unsigned char liftPos(unsigned char* bytes) {
    switch (bytes[1]) {
     case 14 :
          return 3;
  liftPosLife = 3;
  liftPosPast = 2;
          break;
   case 13 :
          return 2;
  liftPosLife = 2;
  liftPosPast = 1;
         break;
     case 11 :
         return 1;
  liftPosLife = 1;
  liftPosPast = 0;
          break;
     case 7 :
          return 0;
  liftPosLife = 0;
  liftPosPast = 0;
         break;
    }
}
</code></pre>
<p>jedoch bekomme ich immer die diese fehler meldung</p>
<blockquote>
<p>S7_Roh.c: In function »unsigned char liftPos(unsigned char*)«:<br />
S7_Roh.c:194: Fehler: »liftPosLife« wurde in diesem Gültigkeitsbereich nicht definiert</p>
</blockquote>
<p>kann mir einer sagen wo da das problem ist ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1499636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1499636</guid><dc:creator><![CDATA[eisenhauer]]></dc:creator><pubDate>Mon, 28 Apr 2008 12:50:17 GMT</pubDate></item><item><title><![CDATA[Reply to globale variabeln in eine funktion verändern on Mon, 28 Apr 2008 12:56:05 GMT]]></title><description><![CDATA[<p>Life != Live.</p>
<p>Und lass das mit den globalen Variablen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1499639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1499639</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Mon, 28 Apr 2008 12:56:05 GMT</pubDate></item><item><title><![CDATA[Reply to globale variabeln in eine funktion verändern on Mon, 28 Apr 2008 12:56:34 GMT]]></title><description><![CDATA[<p>1. Globale Variablen sind schlecht.<br />
2. Globale Variablen sind sehr schlecht.<br />
3. live != life</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1499641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1499641</guid><dc:creator><![CDATA[stein]]></dc:creator><pubDate>Mon, 28 Apr 2008 12:56:34 GMT</pubDate></item><item><title><![CDATA[Reply to globale variabeln in eine funktion verändern on Mon, 28 Apr 2008 13:01:39 GMT]]></title><description><![CDATA[<p>hehehe live ^^</p>
<p>aber das problem ist das ich die variabel mit den veränderten werten in eine andere funktion brauche undzwar hier</p>
<pre><code class="language-cpp">unsigned char able (char liftPosLife, char liftPosPast){
 if (liftPosLive &lt;= liftPosPast){
  return 1;
  }else{
  return 0;
  }
 }
</code></pre>
<p>wie soll ich es sonst machen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1499645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1499645</guid><dc:creator><![CDATA[eisenhauer]]></dc:creator><pubDate>Mon, 28 Apr 2008 13:01:39 GMT</pubDate></item><item><title><![CDATA[Reply to globale variabeln in eine funktion verändern on Mon, 28 Apr 2008 13:11:00 GMT]]></title><description><![CDATA[<p>Übrigens:</p>
<p>nach einem return braucht's keinen code mehr ..</p>
<p>eisenhauer schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">unsigned char liftPos(unsigned char* bytes) {
    switch (bytes[1]) {
     case 14 :
          return 3;
  liftPosLife = 3; // dieser code wird niemals ausgeführt
  liftPosPast = 2; // dieser code wird niemals ausgeführt
          break; // dieser code wird niemals ausgeführt
...
</code></pre>
</blockquote>
<p>Zu Deiner 2. Frage: Entweder per Returnwert</p>
<pre><code class="language-cpp">struct liftPosErg {
  char liftPosLife,  liftPosPast;
  unsigned char returnval;
}

liftPosErg liftPos(unsigned char* bytes) {
    switch (bytes[1]) {
     case 14 : return liftPosErg(3, 2, 3);
     case 13 : return liftPosErg(2, 1, 2);
     case 11 : return liftPosErg(1, 0, 1);
     case 7 : return liftPosErg(0, 0, 0);
    }
}
</code></pre>
<p>bzw. (da es sehr danach aussieht, als wäre Dein returnwert immer gleich liftPosLife ... weswegen man in auch weglassen kann):</p>
<pre><code class="language-cpp">pair&lt;char, char&gt; liftPos(unsigned char* bytes) {
    switch (bytes[1]) {
     case 14 : return make_pair(3, 2);
     case 13 : return make_pair(2, 1);
     case 11 : return make_pair(1, 0);
     case 7 : return make_pair(0, 0);
    }
}
</code></pre>
<p>oder per Referenz (hier wahrscheinlich besser):</p>
<pre><code class="language-cpp">unsigned char liftPos(unsigned char* bytes, char&amp; liftPosLife,  cahr&amp; liftPosPast ) {
    switch (bytes[1]) {
     case 14 : 
        liftPosLife = 3;
        liftPosPast = 2;
        return 3;
   case 13 :
        liftPosLife = 2;
        liftPosPast = 1;
        return 2;
   case 11 :
        liftPosLife = 1;
        liftPosPast = 0;
        return 1;
   case 7 :
     liftPosLife = 0;
     liftPosPast = 0;
     return 0;
  }
}
</code></pre>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1499647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1499647</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 28 Apr 2008 13:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to globale variabeln in eine funktion verändern on Mon, 28 Apr 2008 13:02:48 GMT]]></title><description><![CDATA[<p>dann bau dir doch ne struktur die deine 2 daten enthält...und übergibt die jeweils als referenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1499648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1499648</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Mon, 28 Apr 2008 13:02:48 GMT</pubDate></item><item><title><![CDATA[Reply to globale variabeln in eine funktion verändern on Mon, 28 Apr 2008 13:10:10 GMT]]></title><description><![CDATA[<p>wie siehts den mit nach break aus wir da der return noch aus geführt ?</p>
<p>neben bei thx für die schnellen antworten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1499652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1499652</guid><dc:creator><![CDATA[eisenhauer]]></dc:creator><pubDate>Mon, 28 Apr 2008 13:10:10 GMT</pubDate></item><item><title><![CDATA[Reply to globale variabeln in eine funktion verändern on Mon, 28 Apr 2008 13:11:29 GMT]]></title><description><![CDATA[<p>eisenhauer schrieb:</p>
<blockquote>
<p>wie siehts den mit nach break aus wir da der return noch aus geführt ?</p>
<p>neben bei thx für die schnellen antworten</p>
</blockquote>
<p>Siehe mein erstes Post.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1499654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1499654</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 28 Apr 2008 13:11:29 GMT</pubDate></item><item><title><![CDATA[Reply to globale variabeln in eine funktion verändern on Mon, 28 Apr 2008 13:15:47 GMT]]></title><description><![CDATA[<p>eisenhauer schrieb:</p>
<blockquote>
<p>wie siehts den mit nach break aus wir da der return noch aus geführt ?</p>
<p>neben bei thx für die schnellen antworten</p>
</blockquote>
<p>Wenn Du eine Tür zumachst, kannst Du sie dann nochmal zumachen ohne sie vorher wieder aufzumachen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1499659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1499659</guid><dc:creator><![CDATA[loks]]></dc:creator><pubDate>Mon, 28 Apr 2008 13:15:47 GMT</pubDate></item><item><title><![CDATA[Reply to globale variabeln in eine funktion verändern on Mon, 28 Apr 2008 13:18:19 GMT]]></title><description><![CDATA[<p>dann ist break überflüssig in mein code richtig ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1499661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1499661</guid><dc:creator><![CDATA[eisenhauer]]></dc:creator><pubDate>Mon, 28 Apr 2008 13:18:19 GMT</pubDate></item><item><title><![CDATA[Reply to globale variabeln in eine funktion verändern on Mon, 28 Apr 2008 13:22:07 GMT]]></title><description><![CDATA[<p>loks schrieb:</p>
<blockquote>
<p>eisenhauer schrieb:</p>
<blockquote>
<p>wie siehts den mit nach break aus wir da der return noch aus geführt ?</p>
<p>neben bei thx für die schnellen antworten</p>
</blockquote>
<p>Wenn Du eine Tür zumachst, kannst Du sie dann nochmal zumachen ohne sie vorher wieder aufzumachen?</p>
</blockquote>
<p>Na, ich würde zum Vergleich eher das Verlassen des Hauses (inkl. hinter sich abschließen, Schlüssel einschmelzen und Adresse vergessen) heranziehen.<br />
Die Aufgabe &quot;Stell die Sahne in den Kühlschrank (&quot;liftPosLife = 3;&quot;) und verlasse dann das Haus (&quot;break&quot;) &quot;, kann man danach eben nicht mehr durchführen.</p>
<p>Gruß,</p>
<p>Simon2.</p>
<p>P.S.: Aufgrund der neuen Seite verweise ich nochmal auf mein erstes Post....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1499662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1499662</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 28 Apr 2008 13:22:07 GMT</pubDate></item></channel></rss>