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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-12-04T11:59:24+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=16977&amp;mode</id>
<entry>
<author><name><![CDATA[Nef.ID]]></name></author>
<updated>2016-12-04T11:59:24+01:00</updated>
<published>2016-12-04T11:59:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176460#p176460</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176460#p176460"/>
<title type="html"><![CDATA[Re: Jak to z tym enum?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176460#p176460"><![CDATA[
Rafal555,<br />dzisiaj, na spokojnie wziąłem się do zmian i przeróbek ( z typu enum korzystam i w argumentach funkcji i jeszcze w kilku miejscach),<br />aby wykorzystać instrukcję typdef.<br /> <br />Przypomniałeś mi o typedef, czyli o nadawaniu nowej nazwy do istniejącego typu, <br />typedef nie stosowałem do tej pory, <br />ale faktycznie w tym przypadku dużo upraszcza. Nie muszę ciągle pisać enum, enum ...<br /><br />Tylko w pliku.h wpisuję:<br />[syntax=c]typedef enum  { _off, _wait,  _on }  mojTyp;<br />extern volatile mojTyp xyz;[/syntax]<br /><br />A następnie w plikach.c np.:<br />[syntax=c]volatile mojTyp xyx;<br />void EVENT_CZUWAJ( volatile mojTyp *ref );[/syntax]<br /><br />Teraz mi się to zgadza, nie mam powtórzeń o czym pisałem na początku tego wątku..<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 45 minutach ]</span></strong><br /><br />PS. BB mam pod ręką, zaraz jeszcze raz zajrzę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8366">Nef.ID</a> — 4 gru 2016, o 11:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2016-12-04T10:27:28+01:00</updated>
<published>2016-12-04T10:27:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176454#p176454</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176454#p176454"/>
<title type="html"><![CDATA[Re: Jak to z tym enum?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176454#p176454"><![CDATA[
Napisałeś na początku, że w dwóch plikach wpisujesz to samo. Wystarczy w jednym.<br /><br />Ja się nauczyłem stosować typedef, żeby nie powtarzać tego enum przy tworzeniu zmiennej.<br /> zamiast [syntax=c]enum mojTyp {_off, _wait,  _on};<br />enum mojTyp xyx=_off;[/syntax]<br />robię [syntax=c]typedef enum  {_off, _wait,  _on}mojTyp;<br />mojTyp xyz=_off;[/syntax]<br /><br /> Czy to deklaracja, czy definicja? W przypadku enum to na chłopski rozum ciężko mi określić, ale pierwszą linijkę <br />z obu przykładów pakujesz do pliku .h więc można określić to deklaracją typu wyliczeniowego.<br /> Natomiast druga linijka to pewnie definicja zmiennej typu wyliczeniowego, jak tworzysz i wstępnie inicjalizujesz w pliku .c.<br />Teraz się tak bawię i można ją również zadeklarować w pliku .h, ale bez extern i bez inicjalizacji.<br /> Chyba nic już więcej mądrego nie napiszę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> . A w BB tak słabo opisane? Nie mam teraz pod ręką niestety.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 4 gru 2016, o 10:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nef.ID]]></name></author>
<updated>2016-12-04T01:01:05+01:00</updated>
<published>2016-12-04T01:01:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176436#p176436</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176436#p176436"/>
<title type="html"><![CDATA[Re: Jak to z tym enum?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176436#p176436"><![CDATA[
Sorki, pomieszało się, ma być tak:<br />W pliku plik1.c:<br />[syntax=c]enum mojTyp {_off, _wait,  _on};<br />volatile enum mojTyp xyz;[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 13 minutach ]</span></strong><br /><br />Rafal555, nie możemy się dogadać.<br /><br />1. Piszę że coś zrobiłem, nie wywala błędów, ale tego nie rozumiem.<br />2. Przedstawiasz koncepcje (z tym, że etapami i w końcu się pogubiłem), jakby zrozumiałe, ale to nie chodzi-są błędy przy kompilacji.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 29 minutach ]</span></strong><br /><br />Wróćmy do źródeł:<br />Czy<br />[syntax=c]enum mojTyp {_off, _wait,  _on};[/syntax]<br />jest deklaracją, czy definicją, czy deklaracją i jednocześnie definicją?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8366">Nef.ID</a> — 4 gru 2016, o 01:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2016-12-04T01:05:19+01:00</updated>
<published>2016-12-04T00:58:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176435#p176435</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176435#p176435"/>
<title type="html"><![CDATA[Re: Jak to z tym enum?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176435#p176435"><![CDATA[
Extern trzeba wywalić. Można wtedy zmienne typu browarki zadeklarować i w plik.c i main.c.<br />  <br />ps. wywala błąd &quot;brak na stanie&quot; jak chciałem dodać to co pisałeś.<br /><br /> Całe to [syntax=c]extern browarki piwka;[/syntax] wykasuj, a deklaracje w docelowych plikach .c można robić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 4 gru 2016, o 00:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nef.ID]]></name></author>
<updated>2016-12-04T00:41:26+01:00</updated>
<published>2016-12-04T00:41:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176431#p176431</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176431#p176431"/>
<title type="html"><![CDATA[Re: Jak to z tym enum?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176431#p176431"><![CDATA[
Rafal555, uzupelnij plik main.c i inne, bo w pliku1.c powiedzmy mam takie błedy:<br />[syntax=c]../plik1.c:278:5: error: '_off' has an incomplete type[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />P.S. Nie ma na liście &quot;zywiec&quot;, które obecnie testuję.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 15 minutach ]</span></strong><br /><br />Dodam tak, w chwili obecnej mam tak:<br />w main.c:<br />[syntax=c]enum mojTyp {_off, _wait,  _on};<br />volatile enum alarmo alarm;[/syntax]<br />W plik1.c:<br />enum mojTyp {_off, _wait,  _on};<br />volatile enum alarmo alarm;<br />W plik.h:<br />nic<br />I to o dziwo kompiluje się bez błędów.<br />Ale dlaczego?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8366">Nef.ID</a> — 4 gru 2016, o 00:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2016-12-04T00:21:08+01:00</updated>
<published>2016-12-04T00:21:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176428#p176428</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176428#p176428"/>
<title type="html"><![CDATA[Re: Jak to z tym enum?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176428#p176428"><![CDATA[
enumek.h<br /><br />[syntax=c]/*<br /> * enumek.h<br /> *<br /> *  Created on: 3 gru 2016<br /> *      Author: Rafal<br /> */<br /><br />#ifndef ENUMEK_H_<br />#define ENUMEK_H_<br /><br />typedef enum{tyskie,prazubr,odsasiada}browarki;<br />extern browarki piwka;<br /><br /><br />#endif /* ENUMEK_H_ */[/syntax]<br /><br />main.c<br />[syntax=c]#include &quot;enumek.h&quot;<br />int main(void){<br /><br />piwka=prazubr;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 4 gru 2016, o 00:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nef.ID]]></name></author>
<updated>2016-12-03T23:59:54+01:00</updated>
<published>2016-12-03T23:59:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176424#p176424</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176424#p176424"/>
<title type="html"><![CDATA[Re: Jak to z tym enum?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176424#p176424"><![CDATA[
Rafal555, tu się mylisz, albo się nie rozumiemy: mojTypek, to TYP wyliczeniowy, ksywa enum.<br /><br />Też bym chciał trzymać go w pliku.h, aby korzystały z niego plik1.c i np. plik2.c,  jak im bym dołączył plik.h.<br /><br />Problem jednak jest taki, że jakoś to mi nie działa.<br />Aczkolwiek zaraz sprawdzę jeszcze raz, zgodnie z twoją sugestią.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8366">Nef.ID</a> — 3 gru 2016, o 23:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafał555]]></name></author>
<updated>2016-12-03T23:36:13+01:00</updated>
<published>2016-12-03T23:36:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176422#p176422</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176422#p176422"/>
<title type="html"><![CDATA[Re: Jak to z tym enum?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176422#p176422"><![CDATA[
Z pliku main.c możesz to wykasować. Tylko zainkluduj plik.h.<br /><br />extern enum mojTypek xyz; powinno być w plik.h , a nie plik.c<br /><br /><br />  A mojTypek to zmienna, a nie typ. Trzeba uzyć typedef do utworzenia typu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2697">Rafał555</a> — 3 gru 2016, o 23:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nef.ID]]></name></author>
<updated>2016-12-03T23:16:04+01:00</updated>
<published>2016-12-03T23:16:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176421#p176421</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176421#p176421"/>
<title type="html"><![CDATA[Jak to z tym enum?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16977&amp;p=176421#p176421"><![CDATA[
Tak nie do końca rozumiem.<br />W pliku main.c mam:<br />[syntax=c]enum mojTypek {_off, _wait,  _got,  _on};<br />enum mojTypek xyz;[/syntax]<br /><br />z kolei w plik.c mam:<br />[syntax=c]enum mojTypek {_off, _wait,  _got,  _on};<br />extern enum mojTypek xyz;[/syntax]<br /><br />Pytanie: dlaczego muszę powtarzać definicję (deklarację?) zmiennej mojTypek?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8366">Nef.ID</a> — 3 gru 2016, o 23:16</p><hr />
]]></content>
</entry>
</feed>