<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=58&amp;t=6813&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-18T22:38:23+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=6813&amp;mode</id>
<entry>
<author><name><![CDATA[elektrobo]]></name></author>
<updated>2014-04-18T22:38:23+01:00</updated>
<published>2014-04-18T22:38:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78577#p78577</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78577#p78577"/>
<title type="html"><![CDATA[Re: Problem z Eclipse]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78577#p78577"><![CDATA[
Pomijając to czy funkcja faktycznie jest dobrze napisana (nie widać reszty kodu gdzie jest wykorzystywana), pamiętaj, że wykonanie &quot;return&quot; zawsze kończy działanie funkcji. Czyli tak jak napisał xor drugi warunek &quot;if&quot; w pierwszym przykładzie nigdy się nie wykonuje bo zawsze wykona się prędzej albo &quot;return 1&quot; lub &quot;return 0&quot; z pierwszego warunku i w ten sposób funkcja zakończy pracę.<br /><br />A jeśli chodzi o wątpliwości Wilu88: nie - słowo kluczowe &quot;return&quot; nie musi być zawsze tylko na końcu funkcji. Może być również np. w warunkach &quot;if&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4029">elektrobo</a> — 18 kwi 2014, o 22:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-04-18T22:00:54+01:00</updated>
<published>2014-04-18T22:00:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78574#p78574</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78574#p78574"/>
<title type="html"><![CDATA[Re: Problem z Eclipse]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78574#p78574"><![CDATA[
Eclipse krzyczy warningiem ale pewnie jak zajrzysz w kod maszynowy to okaże się, że ostatniej instukcji (z pierwszego listingu) nawet nie ma. Ponieważ NIGDY nie zaistnieje przypadek wykonania tej instrukcji więc kompilator to sobie zoptymalizuje i po prostu to zignoruje. No ale Eclipse tego nie zignoruje i da warninga. No i co z tym zrobić? Ano napisać podprogram od nowa, bo w tej chwili jest to badziewie. Dwie zmienne globalne w tym jedna przechowywana lokalnie jako statyczna. Po co? Kto to jest w stanie zrozumieć? Jedyny przypadek gdzie zastosowanie zmiennych globalnych ma uzasadnieninie to procedury obsługi przerwania (bo nie można jej przekazać argumentów).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 18 kwi 2014, o 22:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anysiu68]]></name></author>
<updated>2014-04-18T20:55:09+01:00</updated>
<published>2014-04-18T20:55:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78569#p78569</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78569#p78569"/>
<title type="html"><![CDATA[Re: Problem z Eclipse]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78569#p78569"><![CDATA[
Niestety ten sposób nie działa. Program zachowuje się identycznie jak mój drugi przykład.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3957">Anysiu68</a> — 18 kwi 2014, o 20:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2014-04-18T20:48:26+01:00</updated>
<published>2014-04-18T20:48:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78568#p78568</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78568#p78568"/>
<title type="html"><![CDATA[Re: Problem z Eclipse]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78568#p78568"><![CDATA[
Z tego co mi się wydaje return zawsze musi być na końcu a nei w warunkach if. dlatego najlepszym rozwiązaniem według mnie jest w warunkach przypisywanie wartości do zmiennej która późnij na końcu wyrzucamy returnem. Ale głowy nei daję że tak zadziała <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br />[syntax=c]uint8_t klawisz(uint8_t cmd)<br />    {<br />            static uint8_t x=2;<br />     <br />            if(command==cmd &amp;&amp; toggle_bit !=x ){x = toggle_bit; wynik = 1;}<br />            else wynik = 0;<br />     <br />            if(toggle_bit !=x)x = toggle_bit;<br /><br />return wynik;<br />     <br />    }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 18 kwi 2014, o 20:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anysiu68]]></name></author>
<updated>2014-04-18T20:29:38+01:00</updated>
<published>2014-04-18T20:29:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78566#p78566</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78566#p78566"/>
<title type="html"><![CDATA[Problem z Eclipse]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6813&amp;p=78566#p78566"><![CDATA[
Witam.<br />Mam problem z jedną funkcją.<br /> <br />[syntax=c]uint8_t klawisz(uint8_t cmd)<br />{<br />static uint8_t x=2;<br /><br />if(command==cmd &amp;&amp; toggle_bit !=x ){x = toggle_bit; return 1;}<br />else return 0;<br /><br />if(toggle_bit !=x)x = toggle_bit;<br /><br />}[/syntax]<br />Wszystko działa wyśmienicie, jednak podczas kompilacji wyskakuje &quot;robaczek&quot; i napis &quot;No return, in function returning non-void&quot;. Co można z tym zrobić?<br /><br />Jeżeli zapiszę to w ten sposób komunikat znika, ale program nie działa tak, jakbym tego chciał.<br />[syntax=c]uint8_t klawisz(uint8_t cmd)<br />{<br />static uint8_t x=2;<br /><br />if(command==cmd &amp;&amp; toggle_bit !=x ){x = toggle_bit; return 1;}<br />if(toggle_bit !=x)x = toggle_bit;<br /><br />return 0;<br /><br />}[/syntax]<br /><br />Zapewne problem leży w mojej niewiedzy, dlatego pytam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />Dziękuję za ewentualne odpowiedzi i pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3957">Anysiu68</a> — 18 kwi 2014, o 20:29</p><hr />
]]></content>
</entry>
</feed>