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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-09-19T21:11:26+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1562&amp;mode</id>
<entry>
<author><name><![CDATA[ixxl]]></name></author>
<updated>2012-09-19T21:11:26+01:00</updated>
<published>2012-09-19T21:11:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15502#p15502</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15502#p15502"/>
<title type="html"><![CDATA[Re: wskaźniki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15502#p15502"><![CDATA[
Już rozumiem, dzięki za szczegółowe wyjaśnienia <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" /> , dobrze że tym razem Mirek nie zaproponował mi wczasów w lochu <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=67">ixxl</a> — 19 wrz 2012, o 21:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2012-09-19T19:55:25+01:00</updated>
<published>2012-09-19T19:55:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15499#p15499</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15499#p15499"/>
<title type="html"><![CDATA[Re: wskaźniki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15499#p15499"><![CDATA[
Gdy ja analizowałem ta funkcje tez wydawało mi się to dziwne. Ale wytłumaczyłem to sobie tak, że jeśli funkcja strtok nie znajdzie żadnego łańcucha to wsk=NULL, zero. Czyli wsk będzie wskazywać na adres 0. Dlatego w warunku jest if(wsk) a nie if(*wsk).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 19 wrz 2012, o 19:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-09-19T19:09:33+01:00</updated>
<published>2012-09-19T19:09:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15492#p15492</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15492#p15492"/>
<title type="html"><![CDATA[Re: wskaźniki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15492#p15492"><![CDATA[
<div class="quotetitle">ixxl napisał(a):</div><div class="quotecontent"><br />No tak, ja rozumiem po co jest ten warunek. Ale czemu nie jest if(*wsk) ? Tak jak ja to pojmuję, to w warunku if(wsk) będzie np. if(0x00FF) , bo wsk wskazuje na adres a nie na zmienną pod tym adresem.<br /></div><br /><br />Tak jak pisze Krauser, ty się nie zastanawiaj jaka będzie liczba w wsk w tym przypadku bo to zupełnie nie istotne. Z punktu widzenia programisty C, ważne jest w tym warunku czy wskaźnik jest NULL czyli nie wskazuje na nic, czy też na coś wskazuje wtedy jest w nim jakaś wartość inna niż NULL<br /><br />a nie może być<br /><br />if( *wsk )<br /><br />bo nie sprawdzamy tego co się mieści pod tym adresem tylko sprawdzamy czy w ogóle jest adres w wsk - rozumiesz ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 wrz 2012, o 19:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-09-19T18:49:46+01:00</updated>
<published>2012-09-19T18:49:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15489#p15489</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15489#p15489"/>
<title type="html"><![CDATA[Re: wskaźniki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15489#p15489"><![CDATA[
Jak w przeszukiwanym łańcuch znaków strtok_r nie znajdzie pasującego ciągu to wsk=NULL. if(NULL) &lt;=&gt; if(0)<br />Prototyp funkcji atoi wygląda następująco<br />[syntax=c]int atoi(const char * s);[/syntax]<br />Widać, że pobierany jest wskaźnik. Do operacji na łańcuchach znaków zawsze operuje się na wskaźnikach. Nikt nie będzie przekazywał wszystkich znaków do funkcji. Nawet coś takiego:<br />[syntax=c]uart_puts(&quot;Atnel to fajne forum&quot;);[/syntax]<br />to też przekazanie wskaźnika, czyli do adresu w pamięci pierwszego znaku tego łańcucha.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 19 wrz 2012, o 18:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ixxl]]></name></author>
<updated>2012-09-19T18:31:57+01:00</updated>
<published>2012-09-19T18:31:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15488#p15488</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15488#p15488"/>
<title type="html"><![CDATA[Re: wskaźniki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15488#p15488"><![CDATA[
ciągle się nie rozumiemy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Ja wiem , że zwraca wskaźnik (np. adres 0x00ff). Dlatego nie rozumiem tego warunku. Przecież if(0x00FF) jest różny od zera. Podobnie atoi(wsk) da w wyniku 0x00ff , natomiast atoi(*wsk) da wyniku wartosc liczbowa zmiennej spod adresu 0x00ff. Zapewnie nie mam racji, ale chcialbym wiedziec dlaczego, zeby dobrze zrozumiec <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=67">ixxl</a> — 19 wrz 2012, o 18:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-09-19T18:23:28+01:00</updated>
<published>2012-09-19T18:23:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15486#p15486</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15486#p15486"/>
<title type="html"><![CDATA[Re: wskaźniki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15486#p15486"><![CDATA[
<strong>strtok_r</strong> zwraca wskaźnik (jakiś adres) jak znajdzie token lub NULL (nie wskazuje na nic), gdy nie znajdzie szukanego ciągu znaków.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 19 wrz 2012, o 18:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ixxl]]></name></author>
<updated>2012-09-19T17:27:30+01:00</updated>
<published>2012-09-19T17:27:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15483#p15483</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15483#p15483"/>
<title type="html"><![CDATA[Re: wskaźniki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15483#p15483"><![CDATA[
No tak, ja rozumiem po co jest ten warunek. Ale czemu nie jest if(*wsk) ? Tak jak ja to pojmuję, to w warunku if(wsk) będzie np. if(0x00FF) , bo wsk wskazuje na adres a nie na zmienną pod tym adresem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=67">ixxl</a> — 19 wrz 2012, o 17:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-09-19T16:46:15+01:00</updated>
<published>2012-09-19T16:46:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15481#p15481</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15481#p15481"/>
<title type="html"><![CDATA[Re: wskaźniki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15481#p15481"><![CDATA[
if( wsk ) ....<br /><br />Sprawdza po prostu czy wskaźnik nie jest pusty  ? przecież łańcuch mógłby być pusty i musimy się przed tym zabezpieczyc. a tak gdy już mamy pewność że jest ok to możemy sprawdzać token<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 wrz 2012, o 16:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ixxl]]></name></author>
<updated>2012-09-19T16:36:29+01:00</updated>
<published>2012-09-19T16:36:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15480#p15480</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15480#p15480"/>
<title type="html"><![CDATA[wskaźniki]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1562&amp;p=15480#p15480"><![CDATA[
Mała prośba o wyjaśnieni przykładu z książki:<br /><br />[syntax=c]void parse_set_led(char * buf) {<br />char *wsk;<br />uint8_t nr_led, led_on;<br /><br />wsk = strtok_r(NULL, sep, &amp;buf);<br />if( wsk ) {<br />nr_led = atoi(wsk);<br />wsk = strtok_r(NULL, sep, &amp;buf);<br />if( wsk ) {<br />led_on = atoi(wsk);[/syntax]<br /><br />jak rozumiem , wynikiem funkcji strtok bedzie adres do pierwszego znaku pierwszego tokena w lańcuchu. W związku z tym, czemu w warunku if i w funkcji atoi nie ma gwiazdki (*wsk) ? Tak jak wcześniej Mirek zaznaczył, *wsk wskazuje na wartość  a 'wsk' na adres (w dużym uproszczeniu;) . Czyli tak jak ja to rozumiem,  to nr_led = atoi(*wsk) spowoduje zamiane zmiennej ktorej adres wskazuje 'wsk' na wartosc liczbowa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=67">ixxl</a> — 19 wrz 2012, o 16:36</p><hr />
]]></content>
</entry>
</feed>