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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=17233&amp;mode</id>
<entry>
<author><name><![CDATA[mczarny]]></name></author>
<updated>2017-01-04T12:58:41+01:00</updated>
<published>2017-01-04T12:58:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17233&amp;p=179010#p179010</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17233&amp;p=179010#p179010"/>
<title type="html"><![CDATA[Re: Timery programowe z YB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17233&amp;p=179010#p179010"><![CDATA[
Dzięki za odpowiedź.<br />Domyślałem się z tym &quot;in line&quot; - teraz wiem na pewno jak używać takich funkcji<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4651">mczarny</a> — 4 sty 2017, o 12:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2017-01-04T12:44:14+01:00</updated>
<published>2017-01-04T12:44:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17233&amp;p=179009#p179009</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17233&amp;p=179009#p179009"/>
<title type="html"><![CDATA[Re: Timery programowe z YB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17233&amp;p=179009#p179009"><![CDATA[
<div class="quotetitle">mczarny napisał(a):</div><div class="quotecontent"><br />z dotychczasowych nauk wiem, że w plikach typu .h umieszczamy deklarację funkcji a definicja siedzi w pliku .c<br /></div><br />Więc przyszedł czas na kolejny etap nauki - otóż TAK, makra preprocesora, które przecież jak wiesz również mogą być zamieniane na żywy kod <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> przecież też umieszcza się gdzie ? w plikach nagłówkowych *.h .... czyli ? ... czyli zasadne i dopuszczalne jest umieszczanie definicji funkcji typu inline w plikach nagłówkowych<br /><br /><div class="quotetitle">mczarny napisał(a):</div><div class="quotecontent"><br />Z tego co czytałem wcześniej samo &quot;in line&quot; kompilator może ale nie musi potraktować dosłownie.<br /></div><br />Dobrze wyczytałeś ... z tą różnicą, że gdy użyjemy atrybutu __attribute__((always_inline)); to już kompilator nie ma wyboru a obowiązek.<br /><br /><div class="quotetitle">mczarny napisał(a):</div><div class="quotecontent"><br />Sorki za wścibskość ale ja muszę wiedzieć dokładnie....<br /></div><br />A co to za wścibskość ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> mnie takie pytania wręcz cieszą, bo to oznacza, że dokopujesz się do samego środka ! ... to jest zawsze moje marzenie i cel gdy piszę książkę, żeby ktoś zadawał pytania gdy czegoś nie rozumie na forum, zamiast siedzieć cicho kopać się z problemem a gdy się go nie rozwiąże to się poddawać ...<br /><br />Odpowiadając więc, linię tę pozostawiłem zakomentowaną, żeby czytelnik widział jaka była pierwotna próba stworzenia tejże funkcji a na jakiej się skończyło <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 6 minutach ]</span></strong><br /><br />A jeśli już mamy atrybut __always_inline to nie może to być funkcja udostępniana do innych modułów programu poprzez wystawienie jej deklaracji w pliku *.h z uwagi na to, że skoro MUSI być na siłę INLINE (a chyba wiesz co to znaczy) ... to znaczy że nie mogą się inne moduły do niej odwoływać poprzez SKOK do niej ... może ona działać jako inline w tym przypadku TYLKO w ramach modułu w którym zostanie stworzona<br /><br />chyba, że .... no chyba, że jej definicję przeniesiemy do pliku nagłówkowego co jest w takim specyficznym wypadku dopuszczalne <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> — 4 sty 2017, o 12:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mczarny]]></name></author>
<updated>2017-01-04T12:35:12+01:00</updated>
<published>2017-01-04T12:35:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17233&amp;p=179008#p179008</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17233&amp;p=179008#p179008"/>
<title type="html"><![CDATA[Timery programowe z YB]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17233&amp;p=179008#p179008"><![CDATA[
cześć<br />Zabrałem się właśnie za analizowanie kodu w plikach &quot;soft_timers&quot; i nasuwa mi się pytanie odnośnie umieszczenia w pliku <br />&quot;soft_timers.h&quot; definicji funkcji <br />[syntax=c]inline void tmr_irq_tick( void ) {<br />uint16_t n;<br />for( uint8_t i=0; i&lt;MAX_TIMERS; i++ ) {<br />n = stimers&#91;i&#93;.cnt;<br />if (n) stimers&#91;i&#93;.cnt = --n;<br />}<br />}[/syntax]<br /><br />z dotychczasowych nauk wiem, że w plikach typu .h umieszczamy deklarację funkcji a definicja siedzi w pliku .c<br />Czy wynika to z tego, że jest to funkcja &quot;in line&quot;?<br />I jeszcze jedno - w kodzie na nośniku linia <br />[syntax=c]//void tmr_irq_tick( void ) __attribute__((always_inline));[/syntax]<br />jest zakomentowana. Z tego co czytałem wcześniej samo &quot;in line&quot; kompilator może ale nie musi potraktować dosłownie.<br />Sorki za wścibskość ale ja muszę wiedzieć dokładnie.... <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4651">mczarny</a> — 4 sty 2017, o 12:35</p><hr />
]]></content>
</entry>
</feed>