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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-24T14:30:24+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=6129&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-02-24T14:30:24+01:00</updated>
<published>2014-02-24T14:30:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71814#p71814</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71814#p71814"/>
<title type="html"><![CDATA[Re: Definicja i deklaracja zmienej, pytanie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71814#p71814"><![CDATA[
<div class="quotetitle">perlon napisał(a):</div><div class="quotecontent"><br />&quot;Przerabianie&quot; zmiennej uint8_t na int8_t nazywa się rzutowaniem typów i również nie ma wiele wspólnego z deklarowaniem/definiowaniem zmiennych/funkcji.<br /></div><br /><br />Amen!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 24 lut 2014, o 14:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[perlon]]></name></author>
<updated>2014-02-24T14:10:44+01:00</updated>
<published>2014-02-24T14:10:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71811#p71811</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71811#p71811"/>
<title type="html"><![CDATA[Re: Definicja i deklaracja zmienej, pytanie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71811#p71811"><![CDATA[
Chyba trochę koledzy pomieszaliście.<br />Deklaracja funkcji jest to opowiedzenie jaki typ zwraca funkcja i jakie ona przyjmuje argumenty. Deklaracje umieszcza się po to aby kompilator przechodząc przez kolejne linie kodu i trafiając na niezdefiniowaną funkcję nie zgłupiał tylko poszedł dalej wiedząc że gdzieś dalej napotka na definicję a teraz tylko wstawia odpowiednią obsługę zależną od typów. Deklaracja służy do umożliwienia użycia funkcji w danym module przed jej fizyczną definicją. Definicja dokonuje faktycznego przydzielenia miejsca w pamięci (zaadresowania).  Definicja funkcji może występować bez deklaracji ale z powodów powyższych w dobrym stylu jest deklarowanie. W przypadku zmiennych deklaracja i definicja to prawie to samo. Definicja jest zarazem deklaracją o zasięgu danego bloku kodu. W celu zwiększenia widoczności zmiennej stosuje się deklarację zmiennej ( najczęściej w pliku nagłówkowym ) z atrybutem extern, żeby inne moduły/bloki kodu wiedziały co zrobić ze zmienną której nie widzą w swoich deklaracjach/definicjach.<br />Mieszanie do tego modyfikatora volatile chyba jest drobnym nieporozumieniem. Volatile stosuje się z zupełnie innych powodów.  &quot;Przerabianie&quot; zmiennej uint8_t na int8_t nazywa się rzutowaniem typów i również nie ma wiele wspólnego z deklarowaniem/definiowaniem zmiennych/funkcji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=382">perlon</a> — 24 lut 2014, o 14:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[djostry]]></name></author>
<updated>2014-02-24T11:39:19+01:00</updated>
<published>2014-02-24T11:39:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71802#p71802</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71802#p71802"/>
<title type="html"><![CDATA[Re: Definicja i deklaracja zmienej, pytanie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71802#p71802"><![CDATA[
tak, ja nie chce deklarować zmiennych bez definicji ( no bo przecież trzeba zająć jakieś miejsce w pamięci na ta zmienną  ), tylko czy mój sposób myślenia jest jak najbardziej ok .<br /><br />pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1163">djostry</a> — 24 lut 2014, o 11:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Intre]]></name></author>
<updated>2014-02-24T11:39:53+01:00</updated>
<published>2014-02-24T11:23:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71801#p71801</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71801#p71801"/>
<title type="html"><![CDATA[Re: Definicja i deklaracja zmienej, pytanie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71801#p71801"><![CDATA[
No z tego co wiem jest to możliwe jednakże jest to zły nawyk programistyczny ale do końca nie jestem pewien ponieważ ja jestem nauczony zawsze taką zmienną definiować najpierw. Poza tym potem w programie mogą wystąpić dziwne zachowania takiej zmiennej bez deklaracji dlatego również wiem iż warto dawać też specyfikator volatile. Mirek na blogu wyjaśnił dlaczego warto to stosować:<br /><br /><a href="http://mirekk36.blogspot.com/2011/08/test.html"  class="postlink">http://mirekk36.blogspot.com/2011/08/test.html</a><br /><br />Poza tym uhm no nie czarujmy się tej pamięci sporo w tych mikrokontrolerach a jak by zabrakło to zawsze można &quot;większy&quot; mikrokontroler albo zewnętrzną pamięć albo zoptymalizować kod np. przez wstawki asemblerowe czy jakieś inne uproszczenia formuł, funkcji.<br /><br />No i sam specyfikator volatile też skraca i optymalizuje program <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1356">Intre</a> — 24 lut 2014, o 11:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[djostry]]></name></author>
<updated>2014-02-24T10:59:02+01:00</updated>
<published>2014-02-24T10:59:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71799#p71799</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71799#p71799"/>
<title type="html"><![CDATA[Definicja i deklaracja zmienej, pytanie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6129&amp;p=71799#p71799"><![CDATA[
witam.<br />Pytanie odnośnie definicji i deklaracji zmiennej.<br />Czy jest możliwa deklaracja zmiennej bez wcześniejszego zdefiniowania tej zmiennej ?<br />Wiadomo że definicja zajmuje pamięć dla nowego obiektu i deklaruje go.<br />Deklaracja określa pewne własności zmiennej czy funkcji, ale zmienna zajmuje zawsze jakieś miejsce w pamięci flash, czy to eeprom, czy to ram.<br />wobec tego musi być zdefiniowana ( bo zajmuje miejsce ), aby później można było ja sobie deklarować, tak ? dobrze rozumiem ? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Czyli definiujemy zmienną typu uint_8t ( 1 bajt, od 0 do 255 ), a później w kodzie programu jak potrzebujemy &quot;przerabiamy&quot; deklarując tą zmienną na init8_t ( od -128 do 127 ).<br />dobrze myślę ?<br /><br />pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1163">djostry</a> — 24 lut 2014, o 10:59</p><hr />
]]></content>
</entry>
</feed>