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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-04-25T12:25:13+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1032&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-25T12:25:13+01:00</updated>
<published>2012-04-25T12:25:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5802#p5802</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5802#p5802"/>
<title type="html"><![CDATA[Re: Dołączanie plików nagłówkowych *.h - pytanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5802#p5802"><![CDATA[
<div class="quotetitle">psi napisał(a):</div><div class="quotecontent"><br />D<br /><em>&quot;Identifiers starting with a _ is reserved for the implementation/compiler, so don't use that.&quot;</em><br /></div><br /><br />No tak - dokładnie - ale to się też jakby sprowadza do tego co pisałem - bo to że są zarezerwowane nie oznacza że ich użycie coś popsuje - jedynie dla oka naszego mogą się mylić czasem nazwy gdybyśmy je zbyt często stosowali w programie z podkreślnikiem na początku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 kwi 2012, o 12:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[psi]]></name></author>
<updated>2012-04-25T11:28:18+01:00</updated>
<published>2012-04-25T11:28:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5799#p5799</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5799#p5799"/>
<title type="html"><![CDATA[Re: Dołączanie plików nagłówkowych *.h - pytanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5799#p5799"><![CDATA[
Dzięki za szybką odpowiedź.<br /><br />Co do tego, że to nie makro, to zgadzam się całkowicie. Gdy szukałem informacji w sieci, na niektórych stronach było to nazwane makro i tak jakoś utkwiło <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br />A co do podkreślenia przed nazwą to to co znalazłem dotyczyło właśnie definicji preprocesora (źródło - <a href="http://stackoverflow.com/questions/2939368/best-practice-on-c-header-files-with-ifndef-define-endif"  class="postlink">http://stackoverflow.com/questions/2939368/best-practice-on-c-header-files-with-ifndef-define-endif</a> pierwsza odpowiedź pod pytaniem):<br /><br /><em>&quot;Identifiers starting with a _ is reserved for the implementation/compiler, so don't use that.&quot;</em><br /><br />Co do nazywania zmiennych to wiem, że jedną z umownych konwencji jest, że nazwy zmiennych prywatnych w klasie powinny zaczynać się od podkreślenia. Ale to umowne konwencje, a problem, którym rozpocząłem watek jest przecież czysto akademicki  <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=276">psi</a> — 25 kwi 2012, o 11:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-25T10:05:10+01:00</updated>
<published>2012-04-25T10:05:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5797#p5797</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5797#p5797"/>
<title type="html"><![CDATA[Re: Dołączanie plików nagłówkowych *.h - pytanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5797#p5797"><![CDATA[
No masz zupełną rację że w tym przypadku jest to problem absolutnie czysto akademicki <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />To co tu jest robione to przede wszystkim nie jest makro <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />definicja makra może wyglądać np tak:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#define MAX(a,b) ((a&gt;b)?a:b)</div><br /><br />albo chociażby tak:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#define LED_ON PORTB |= (1&lt;&lt;PB1)</div><br /><br />natomiast to co stosujemy do zabezpieczania plików nagłówkowych przed ich jakby rekurencyjnym wczytywaniem to jest definiowanie NAZWY jakiejś tam stałej nazwy (definicji) na potrzeby tylko i wyłącznie preprocesora. To nigdy nie weźmie udziału kompilacji<br /><br />#define ALA_I_AS<br /><br />dlatego z punktu widzenia definiowania takich nazw na potrzeby zabezpieczeń plików nagłówkowych przed ich ponownym wczytywaniem do kodu - stosujemy nazwy, które ot po prostu kojarzą się z nazwą pliku ale równie dobrze mogłaby to być nazwa ALA_I_AS zamiast np IP_CONFIG_H <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />z tego punktu widzenia w ogóle jest nieistotne czy podkreślnik wystąpi na początku tej nazwy czy nie - to po prostu ma być nazwa - która nigdy przypadkiem nie powtórzy się w innym pliku nagłówkowych w ramach ochrony przed tym wczytywaniem. Zatem jeśli przyjmiemy zasadę że będziemy te nazwy tworzyć od nazw plików czy z podkreślinikami w środku czy na początku czy na końcu - to nie ma żadnego znaczenia.....<br /><br />równie dobrze możnaby przyjąć inną chociaż dużo brzydszą zasadę że będziemy nadawać nazwy związane z godziną i sekundami gdy tworzymy taki nowy plik np:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#ifnndef _12_33_18</div><br /><br /><img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> tyle że to brzydko a jak widzimy nazwę związaną z nazwą pliku to od razu dla oka lepiej no się nie pomyli<br /><br />---------------<br /><br />natomiast to co słyszałeś z podkreślnikami - to po prostu tworząc zmienne w programie nie nadużywaj podkreślnika na pczątku ale tu chodzi raczej też o porządek i zasadę niż o strach że coś złego się stanie. Łatwo bowiem pomylić przy różnych krojach fontów/czcionek np czy dałeś jeden czy dwa podkreślniki i za chwilę tobie samemu będzie się mieszało<br /><br />jeśli już używamy to dla jakichś na prawdę bardzo specyficznych celów - np gdy chcemy zachować ciągłość nazwy wskaźnika, który przekazywany jest jako argument a ma odzwierciedlać jakąś zmienną np:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">uint8_t zmienna;<br /><br />void fun( uint8_t * _zmienna );</div><br /><br />wtedy wewnątrz funkcji będę wiedział okiem że _zmienna to wskaźnik a nie jej instancja fizyczna np w obszarze zmiennych globalnych. To jest oczywiście tylko bardzo prosty poglądowy przykład a nie praktyczny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 kwi 2012, o 10:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[psi]]></name></author>
<updated>2012-04-25T09:47:41+01:00</updated>
<published>2012-04-25T09:47:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5796#p5796</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5796#p5796"/>
<title type="html"><![CDATA[Dołączanie plików nagłówkowych *.h - pytanie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1032&amp;p=5796#p5796"><![CDATA[
W przykładach z płyty dołączonych do książki Mirka pojawiają się 3 różne formy nazywania makra przy sprawdzaniu czy plik *.h został już dołączony (tzw. include guard). <br />Żeby było łatwiej podam przykłady z podaniem numeru programu:<br /><br />Program 03_Multi_LED - #ifndef <strong>_d_led_h<br /></strong>Program 04_LCD - #ifndef <strong>LCD_H_</strong><br />Program 20_ETH_serwer_www - #ifndef <strong>IP_CONFIG_H </strong><br /><br />Może to problem czysto akademicki  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ale chciałbym zapytać bardziej obeznanych w programowaniu, czy to w jakim &quot;formacie&quot; nazwiemy makro ma jakieś znaczenie praktyczne? Czy któryś sposób jest bardziej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> zalecany od innego? Z informacji znalezionych w sieci, spotkałem się jedynie z informacją, że nazwa ze znakiem podkreślenia z przodu jest niezalecana.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=276">psi</a> — 25 kwi 2012, o 09:47</p><hr />
]]></content>
</entry>
</feed>