<?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=8260&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-08-25T11:42:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=8260&amp;mode</id>
<entry>
<author><name><![CDATA[repro]]></name></author>
<updated>2014-08-25T11:42:51+01:00</updated>
<published>2014-08-25T11:42:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92791#p92791</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92791#p92791"/>
<title type="html"><![CDATA[Re: definicja zmiennych w for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92791#p92791"><![CDATA[
<div class="quotetitle">mokrowski napisał(a):</div><div class="quotecontent"><br />Co do jednego masz rację. Operator przecinka jest operatorem ,,błędogennym&quot;, jak działa trzeba wiedzieć i <strong>raczej</strong> należy go unikać. Zresztą mówi o tym wyraźnie MISRA-C.<br />Nawet tu masz niebezpieczeństwo:<br />[syntax=c]uint8_t a, b; // a i b są typu uin8_t<br />uint8_t* c, d; // c jest typu wskaźnik na uint8_t a c jest typu ... uin8_t :-)[/syntax]<br /></div><br /><br />Nigdy nie słyszałem o MISRA-C, nawet przez cały tok studiów. Po dłuższej przerwie robię sobie powtórkę z języka i staram sobie urozmaicić tą zabawę, jak mogę. Wychodzą różne niedociągnięcia <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />Cieszę się, że wychodzą takie kwiatki, bo pozwala lepiej zrozumieć język. Wczoraj przeglądając ogłoszenia pracy dla programistów C natknąłem się na termin wersjonowanie kodu, co było mi zupełnie obce. Na szczęście mam kolegę, co pracuje, jako programista i trochę mi go naświetlił.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=613">repro</a> — 25 sie 2014, o 11:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-25T09:45:46+01:00</updated>
<published>2014-08-25T09:45:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92783#p92783</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92783#p92783"/>
<title type="html"><![CDATA[Re: definicja zmiennych w for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92783#p92783"><![CDATA[
<div class="quotetitle">mokrowski napisał(a):</div><div class="quotecontent"><br />Co do jednego masz rację. Operator przecinka jest operatorem ,,błędogennym&quot;, jak działa trzeba wiedzieć i <strong>raczej</strong> należy go unikać. Zresztą mówi o tym wyraźnie MISRA-C.<br />Nawet tu masz niebezpieczeństwo:<br />[syntax=c]uint8_t a, b; // a i b są typu uin8_t<br />uint8_t* c, d; // c jest typu wskaźnik na uint8_t a c jest typu ... uin8_t :-)[/syntax]<br /></div><br /><br />Fajny przykład .... rzeczywiście warto o tym wiedzieć.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 sie 2014, o 09:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[repro]]></name></author>
<updated>2014-08-24T22:46:46+01:00</updated>
<published>2014-08-24T22:46:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92764#p92764</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92764#p92764"/>
<title type="html"><![CDATA[Re: definicja zmiennych w for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92764#p92764"><![CDATA[
Diabeł tkwi w szczegółach, albo za mało praktyki. Nie mogłem zrozumieć, skąd te ostrzeżenia, ale po tych dwóch wypowiedziach zrozumiałem błąd. W którejś książce autor wspominał to jako zaletę C++ w stosunku do C i tak mi zostało. Dziękuję za sprostowanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=613">repro</a> — 24 sie 2014, o 22:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-08-24T21:31:28+01:00</updated>
<published>2014-08-24T21:31:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92751#p92751</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92751#p92751"/>
<title type="html"><![CDATA[Re: definicja zmiennych w for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92751#p92751"><![CDATA[
Warning wynika z tego, że w przypadku tzw. operatora przecinkowego wartością wyrażenia jest to co znajduje się po prawej stronie przecinka, to co jest po stronie lewej jest ignorowane (operacja jest jak najbardziej wykonywana ale nie ma żadnego wpływu na wartość całego wyrażenia). W twojej pętli faktyczny warunek kontynuacji pętli to &quot;k &gt;= 4&quot;, natomiast &quot;i &lt; 4&quot; jest ignorowane i o tym kompilator cię ostrzega. Zamień przecinek w tej części pętli na sumę logiczną i będzie działać. Pozostałe części pętli (przed pierwszym i po drugim średniku) możesz zostawić bez zmian -są to całkowicie prawidłowe, zarówno składniowo jak i logicznie, wyrażenia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 24 sie 2014, o 21:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-24T20:41:38+01:00</updated>
<published>2014-08-24T20:41:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92744#p92744</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92744#p92744"/>
<title type="html"><![CDATA[Re: definicja zmiennych w for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92744#p92744"><![CDATA[
<div class="quotetitle">repro napisał(a):</div><div class="quotecontent"><br />ale używam języka C, a tu kompilator trawi składnię dla C++<br /></div><br /><br />Wcale w C nie trzeba koniecznie definiować zmiennych przed pętlą, można w pętli <br /><br />[syntax=c]for( int a=0, b=7 ; .....[/syntax]<br /><br />... zgodnie ze standardem<br /><br /><img src="http://forum.atnel.pl/_obrazki/o/54/7e13b4224df59b923ef2bb691d528964.png" alt="Obrazek" /><br /><br />i to już od dawna, tylko trzeba go właśnie ustawić sobie w opcjach kompilatora jak pokazałem na rysunku wyżej.<br /><br /><br />Problemem było u ciebie tylko to:<br /><br /><img src="http://forum.atnel.pl/_obrazki/o/54/7b3c37f917668215cc105753751d4c74.png" alt="Obrazek" /><br /><br />czyli warunek pętli powinien być jeden a nie dwa oddzielone przecinkiem jak ty to próbowałeś zrobić<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 sie 2014, o 20:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[repro]]></name></author>
<updated>2014-08-24T19:26:11+01:00</updated>
<published>2014-08-24T19:26:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92736#p92736</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92736#p92736"/>
<title type="html"><![CDATA[Re: definicja zmiennych w for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92736#p92736"><![CDATA[
Mnie zastanawia, dlaczego kompilator coś takiego przepuszcza i co chodzi z tym operand`em.<br />W C to wiem, że trzeba zmiennie zainicjalizować przed pętlą for, ale używam języka C, a tu kompilator trawi składnię dla C++ <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br />Dziękuję za odpowiedzi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=613">repro</a> — 24 sie 2014, o 19:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-24T19:12:58+01:00</updated>
<published>2014-08-24T19:12:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92733#p92733</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92733#p92733"/>
<title type="html"><![CDATA[Re: definicja zmiennych w for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92733#p92733"><![CDATA[
<div class="quotetitle">matisek1233 napisał(a):</div><div class="quotecontent"><br />powinno działać<br /></div><br /><br />Na pewno będzie działać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 sie 2014, o 19:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matisek1233]]></name></author>
<updated>2014-08-24T18:55:54+01:00</updated>
<published>2014-08-24T18:55:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92729#p92729</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92729#p92729"/>
<title type="html"><![CDATA[Re: definicja zmiennych w for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92729#p92729"><![CDATA[
w ce robisz to tak:<br />[syntax=c]int8_t i = 0, k  = 7;<br />    for(; (i &lt; 4) &amp;&amp; (k &gt;= 4);)<br />    {<br />                    _delay_ms(150);<br />                    LEDPORT = (1&lt;&lt;i) | (1&lt;&lt;k);<br />                    if( i == 3 &amp;&amp; k == 4)<br />                    {<br />                            LEDPORT |= LEDPORT;<br />                            poprzedni = LEDPORT;<br />                            _delay_ms(150);<br />                    }<br />                    i++; k--;<br />    }[/syntax]<br /><br />powinno działać, spróbuj<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=945">matisek1233</a> — 24 sie 2014, o 18:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[repro]]></name></author>
<updated>2014-08-24T17:37:17+01:00</updated>
<published>2014-08-24T17:37:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92723#p92723</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92723#p92723"/>
<title type="html"><![CDATA[definicja zmiennych w for]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8260&amp;p=92723#p92723"><![CDATA[
Witam,<br />pierwsze moje pytanie odnośnie języka C. W C++ dozwolone jest definiowanie w pętli więcej niż jedną zmienną. Natomiast w  C taka operacja powinna być zakazana. Przykład poniżej:<br />[syntax=c]for( int8_t i = 0, k  = 7 ; i &lt; 4, k &gt;= 4; i++, k--)<br />{<br />_delay_ms(150);<br />LEDPORT = (1&lt;&lt;i) | (1&lt;&lt;k);<br />if( i == 3 &amp;&amp; k == 4)<br />{<br />LEDPORT |= LEDPORT;<br />poprzedni = LEDPORT;<br />_delay_ms(150);<br />}<br />}[/syntax]<br />Kod działa poprawnie tzn. robi to co oczekuję przy zabawie z drabinką led. Kompilator kompiluje, ale zaznacza na żółto wyżej pokazaną pętle. Kiedy najadę na żółte pole w Eclipse wyświetla mi taki komunikat:<br />&quot;left-hand operand of comma expression has no offect&quot;<br />Lewostronny operator przecinka nie ma efektu? Podejrzewam, że chodzi o to co znajduje się po przecinku, ale czy ktoś mógłby to sprostować?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=613">repro</a> — 24 sie 2014, o 17:37</p><hr />
]]></content>
</entry>
</feed>