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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-08-03T19:09:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7984&amp;mode</id>
<entry>
<author><name><![CDATA[azorp12]]></name></author>
<updated>2014-08-03T19:09:30+01:00</updated>
<published>2014-08-03T19:09:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=90056#p90056</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=90056#p90056"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=90056#p90056"><![CDATA[
Dziękuję za rady. Nie ukrywam że dyskusja ta wzbogaciła moją wiedzę na temat struktur i wskaźników (z którymi oswajam się od dłuższego czasu).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1743">azorp12</a> — 3 sie 2014, o 19:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2014-08-03T12:34:57+01:00</updated>
<published>2014-08-03T12:34:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=90023#p90023</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=90023#p90023"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=90023#p90023"><![CDATA[
Może czepianie to nie najszczęśliwsze określenie. Chodziło mi o takie... a zresztą nie ważne. W każdym razie nie przypisywałem temu &quot;czepianiu&quot; negatywnego zabarwienia. <br /><br />Jeszcze tylko chciałbym sprostować jedną rzecz, bo może niezbyt precyzyjnie gdzieś się wyraziłem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Nie twierdzę, że wskaźniki ogólnie są złe i niebezpieczne. Tzn. uważam, że należą do tych mechanizmów (obok np. dynamicznej alokacji), które wymagają &quot;specjalnej troski&quot;, ale poza tym są jak najbardziej ok. Zdecydowanie nie uważam się za jakiegoś fanatyka bezpieczeństwa... jako hobbysta generalnie sam sobie wyznaczam &quot;standardy&quot; i sam je łamię <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Wracając do głównego pytania Autora wątku (o wypełnianie pól struktury) i niejako podsumowując moje wywody:<br /><br />Zakładając, że jest sobie jakaś struktura:<br />[syntax=c]struct typ {<br />   uint8_t zm1;<br />   uint8_t zm2;<br />   uint8_t zm3;<br />   ...<br />};<br /><br />struct typ obiekt;[/syntax]<br />Uważam, że wypełnienie jej pól w taki sposób:<br /><br />[syntax=c]uint8_t *ptr;<br />ptr = &amp;obiekt.zm1;<br /><br />for(...){<br />   *(ptr++) = wartość;<br />}[/syntax]Nie daje, względem sposobów pokazanych przez kolegę <strong>mokrowskiego</strong> na początku wątku, żadnych plusów. Jest natomiast błędogenne, bo jeśli:<br />- zmienimy typ którejś ze zmiennych na np. uint16_t<br />- z takich czy innych względów nie zagwarantujemy upakowania struktury<br />to otrzymamy dosyć niepożądany efekt. Oczywiście zgadzam się - można napisać, przy strukturze odpowiedni komentarz, że planujemy wykorzystać taki i taki mechanizm. Ale mimo wszystko rośnie ryzyko, że gdzieś w gąszczu kodu umknie nam, że w pliku X struktura wypełniania jest z wykorzystaniem wskaźnika. Stosując zapis &quot;klasyczny&quot; chroni nas mechanizm działania struktury. W ogóle zauważyłem, że im dłużej bawię się programowaniem tym czyściej dochodzę do wniosku, że nie warto skracać zapisów. Kompilator i tak sobie poradzi z optymalizacją &quot;rozwleczonego&quot; na kilka linijek zapisu; a czytelność kodu często jest nieporównywalnie większa.<br /><br />Co do wydajności to muszę przyznać, że trochę się zdziwiłem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Skompilowałem coś takiego (avr gcc);<br />[syntax=c]struct typ {<br />uint8_t zm1;<br />uint8_t zm2;<br />        ...<br />uint8_t zm10;<br />};<br /><br />volatile struct typ obiekt;<br /><br />int main(void){<br /><br />volatile uint8_t *ptr;<br />ptr = &amp;obiekt.zm1;<br />uint8_t i;<br /><br />for(i=10;i--;){<br />*(ptr++) = 10;<br />}<br /><br />obiekt.zm1 = 10;<br />obiekt.zm2 = 10;<br />        ...<br />obiekt.zm10 = 10;<br />}[/syntax]<br /><br />Spodziewałem się, że wypełnianie w pętli ze wskaźnikiem będzie szybsze. A tu poniekąd lipa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />Dla optymalizacji Os: ustawianie na piechotę to jeden rozkaz asm na każde przypisanie. W pętli jest natomiast 6 rozkazów na każdy obieg <img src="https://forum.atnel.pl/images/smilies/icon_e_surprised.gif" alt=":o" title="Zdziwiony" /><br />Dla optymalizacji O3: kompilator rozwinął pętlę i oba zapisy są z grubsza identyczne. <br /><br />A jeszcze na koniec  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> : <br />(Elektryczne Gitary)<br />&quot;jest tyle różnych dróg uu-uuu<br />[...]<br />wszyscy zgadzają się ze sobą<br />a będzie nadal tak jak jest&quot;<br /><br />Chłodnego dnia życzę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Pozdrawiam, Wojtek<p>Statystyki: Napisane przez Gość — 3 sie 2014, o 12:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-02T22:36:13+01:00</updated>
<published>2014-08-02T22:36:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89970#p89970</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89970#p89970"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89970#p89970"><![CDATA[
<div class="quotetitle">wwojtek napisał(a):</div><div class="quotecontent"><br />i właśnie dlatego &quot;lubię&quot; się czepiać<br /></div><br /><br />Ja bym tego co pisałeś nie nazwał czepianiem, bo &quot;czepiania&quot; się nie cierpię .... <br /><br />ja twoje wypowiedzi traktuję jako odmienne zdanie, i je szanuję bo sporo nowego wnosisz - a człowiek uczy się całe życie .... i przez to poziom dyskusji jest w porządku - a nie to co na ele..... <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> — 2 sie 2014, o 22:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2014-08-02T22:34:11+01:00</updated>
<published>2014-08-02T22:34:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89969#p89969</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89969#p89969"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89969#p89969"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />za to pożytek z tej dyskusji będzie taki<br /></div>i właśnie dlatego &quot;lubię&quot; się czepiać, bo zawsze coś fajnego przy okazji wypłynie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Pozdrawiam, Wojtek!<p>Statystyki: Napisane przez Gość — 2 sie 2014, o 22:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-02T20:10:25+01:00</updated>
<published>2014-08-02T20:10:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89948#p89948</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89948#p89948"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89948#p89948"><![CDATA[
<div class="quotetitle">mokrowski napisał(a):</div><div class="quotecontent"><br />Jak w życiu, albo wolność+odpowiedzialność, albo spory koszt, mniejsza wydajność i ... ubezwłasnowolnienie.. ;/<br /></div><br /><br />i to jest dobre podsumowanie tej dyskusji chyba <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> — 2 sie 2014, o 20:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-02T19:33:54+01:00</updated>
<published>2014-08-02T19:33:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89941#p89941</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89941#p89941"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89941#p89941"><![CDATA[
wwojtek a ja odpowiem krótko <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />pozwolę się z tobą nie zgodzić w całej rozciągłości ... szczególnie z wyjaśnieniami typu:<br /><br /><div class="quotetitle">wwojtek napisał(a):</div><div class="quotecontent"><br />Ok. W chwili tworzenia programu nie ma problemu, ale za jakiś czas założenia mogą się zmienić i nagle się okaże<br /></div><br /><br />krótko &quot;samo&quot; nic się nie zmienia - po to są programiści ...<br /><br />jak mówiłem wcześniej - jeśli dla kogoś wskaźniki przy strukturach to brudne tricki - to zawsze można sięgnąć po Pascala albo inny tego typu język <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle">wwojtek napisał(a):</div><div class="quotecontent"><br />Natomiast wersja z wskaźnikiem może się zemścić przykładowo jeśli jakiś fajny kawałek kodu z AVR wykorzystamy na innej architekturze<br /></div><br /><br />zemścić to się zawsze może - jeśli czegoś nie przemyślimy, w ogóle wskaźniki mogą się zemścić na każdym kroku ... ba! i często się mszczą - szczególnie u początkujących ale nie tylko ... <br /><br />wiesz tego typu argumentów - to można sypać jak z rękawa - setki ... <br /><br />a i tak gdy ktoś sobie pisze mały programik to zwykle są to bardzo indywidualne potrzeby itp ...<br /><br />to co próbujesz tu wmieszać - to hmmm podejście powiedzmy do np programowania zespołowego, duże projekty itp itd ...<br /><br />wtedy zdecydowana większość twoich argumentów jest jak najbardziej OK <br /><br />przy czym uwaga - ja nie mówię tu i nie wypowiadam się jako expert ... daleko mi do experta .... w tej dziedzinie ... to moje subiektywne zdanie i dlatego pozostanę przy swoim ... za to pożytek z tej dyskusji będzie taki - że każdy zobaczy albo zwróci uwagę na wiele dodatkowych aspektów jakie tu zostały poruszone.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 sie 2014, o 19:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2014-08-02T19:13:27+01:00</updated>
<published>2014-08-02T19:13:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89939#p89939</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89939#p89939"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89939#p89939"><![CDATA[
A ja tam jeszcze poględzę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />jeśli sam tworzę strukturę i to z myślą właśnie o tym aby później móc się po niej poruszać wskaźnikiem - to co za problem ?<br /></div>Ok. W chwili tworzenia programu nie ma problemu, ale za jakiś czas założenia mogą się zmienić i nagle się okaże, że strukturę trzeba przerobić. Sam w poradnikach wskazywałeś na fajne rozwiązania, które ułatwiają wykonywanie zmian w programie - dlaczego więc tutaj odbierać sobie tą przyjemność?<br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />wy tak opowiadacie - jakby za programowanie miałby się brać tylko ktoś, kto w ogóle nie wie co robi <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div>Niet. Chodzi mi tylko o to, że stosując &quot;tradycyjne&quot; rozwiązania da się ominąć skakanie gołym wskaźnikiem po elementach struktury, które uważam za, tak jak napisał kolega <strong>xor</strong> &quot;dirty trick&quot;. Sam zwracasz uwagę na to, jakie mechanizmy dostarcza nam język wysokiego poziomu, np. że nie musimy się przejmować adresami zmiennych w eepromie. Tutaj natomiast z premedytacją pozbawiamy się ochrony, jaką daje nam mechanizm działania struktury. <br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />wadą gdy się nie do końca zdaje sobie sprawy ze wskaźników<br /></div>Wydaje mi się, że można sobie doskonale radzić ze wskaźnikami i mieć je w małym... AtTiny; a i tak strzelić sobie w stopę takim kodem. Korzystając ze struktury &quot;klasycznie&quot; nie musimy się martwić generalnie o nic. Natomiast wersja z wskaźnikiem może się zemścić przykładowo jeśli jakiś fajny kawałek kodu z AVR wykorzystamy na innej architekturze *<br /><br />* - wiem wiem, to dział o programowaniu uK AVR. Ale przypuszczam, że znajdzie się kilka osób, które programują również i inne procki w oparciu o tą wiedzę. Zresztą Mirek nieraz wspominał, że nie uczy programować AVR'ów, tylko przekazuje wiedzę &quot;inter-architekturalną&quot; na temat technik programowania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />czy uważasz że jest na to TYLKO JEDNO JEDYNE SŁUSZNE rozwiązanie ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div>Nie! Ale, wydaje mi się, że trzeba zastrzec jakie, każde z rozwiązań, ma wady i zalety. <br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />wskaźniki to nie czarna magia - to po prostu obszar RAM i nie ważne czy w postaci struktury czy tablicy czy zmiennych luzem - po prostu można się do tego odnosić dzięki wskaźnikom<br /></div>Tablica zajmuje ciągły obszar pamięci, więc już jest różnica. Jasne, że wskaźniki to nie czarna magia itd. Ale MOIM zdaniem, jeżeli już stosujemy strukturę, to nie warto się obdzierać z mechanizmów jakie ona dostarcza. Tak jak wspomniał kolega <strong>xor</strong> plusów za bardzo nie widać. Broń Boże nie mówię, że to nie będzie działać (jak się dobrze zrobi), że jest to totalnie zabronione, złe fuj i fusebity się od tego zablokują. Chodzi mi tylko o to, że każde rozwiązanie z lataniem wskaźnikami po strukturze da się zrobić inaczej, bezpieczniej, &quot;przenośniej&quot; itd. Przynajmniej aktualnie nie widzę opcji, która bezwzględnie wymagałaby użycia wskaźników... ale mam w pokoju 28* więc wielu rzeczy mogę nie dostrzegać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez Gość — 2 sie 2014, o 19:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-02T17:47:34+01:00</updated>
<published>2014-08-02T17:47:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89925#p89925</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89925#p89925"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89925#p89925"><![CDATA[
<div class="quotetitle">xor napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent">czy ktoś ci nakazuje ?<br /></div><br />No skoro nikt nie nakazuje to &quot;...otwieram drzwi i nie mówię już nic...&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /></div><br /><br />źle mnie chyba zrozumiałeś ... <br /><br /><div class="quotetitle">xor napisał(a):</div><div class="quotecontent"><br />No dobra, to zależy od konkretnego przypadku,<br /></div><br /><br />po prostu o to mi chodziło .... a nie o jakieś czepianie się .... <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> — 2 sie 2014, o 17:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-08-02T17:34:25+01:00</updated>
<published>2014-08-02T17:34:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89919#p89919</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89919#p89919"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89919#p89919"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />czy ktoś ci nakazuje ?<br /></div><br />No skoro nikt nie nakazuje to &quot;...otwieram drzwi i nie mówię już nic...&quot; <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=1774">xor</a> — 2 sie 2014, o 17:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-02T17:01:36+01:00</updated>
<published>2014-08-02T17:01:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89908#p89908</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89908#p89908"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89908#p89908"><![CDATA[
<div class="quotetitle">xor napisał(a):</div><div class="quotecontent"><br />No dobra, ale gdzie pojawia się zysk?<br /></div><br /><br />to tylko kwestia wyobraźni i potrzeb ... <br /><br />a memset to co robi ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> DOKŁADNIE to samo - przelatuje wskaźnikiem aż zaora całą strukturę ...<br /><br /><div class="quotetitle">xor napisał(a):</div><div class="quotecontent"><br />Jeśli mam przypisać każdemu elementowi coś innego to i tak muszę pamiętać i odróżniać, że element nr 1 to zmienna o takim przeznaczniu i typie, element nr 2 o siakim itd to dlaczego miałbym się motać w jakiś trikach zamiast po prostu użyć nazwy pola?<br /></div><br /><br />Ależ nie musisz się motać - możesz sobie to ręcznie zrobić jak chcesz - co za problem - czy ktoś ci nakazuje ? czy uważasz że jest na to TYLKO JEDNO JEDYNE SŁUSZNE rozwiązanie ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />.......... już podaję przykład, luźny przykład .... Po pierwsze mogę mieć gdzieś w jakiejś tablicy we flash .. hmmm jakiś zestaw albo kilka zestawów danych do podmiany w takiej strukturze i to niekoniecznie w całej a np tylko w jej fragmencie .... <br /><br />Czyli załóżmy hipotetycznie że trzeba taką strukturę co jakiś czas wyzerować a niektóre jej pola szybko ustawić na pewien zestaw wartości (a takich zestawów możemy mieć kilka) ...<br /><br />no to na początek czy memsetem czy ręcznie wskaźnikiem sobie wyzeruję strukturę, a później wskaźnikiem szybko napełnię jej fragment danymi z tablicy iterując po jej indeksie albo też jadąc po niej innym wskaźnikiem ...<br /><br />Panowie, nie popadajmy w skrajności .... wskaźniki to nie czarna magia - to po prostu obszar RAM i nie ważne czy w postaci struktury czy tablicy czy zmiennych luzem - po prostu można się do tego odnosić dzięki wskaźnikom <br /><br />oczywiście, że trzeba brać pod uwagę takie rzeczy jak chociażby powiedział wyżej wwojtek, że struktury nie muszą być ciągłe ... ale też nie na darmo w Eclipse ale także samo w Atmel Studio ktoś domyślnie jednak włącza tę opcję ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 sie 2014, o 17:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-08-02T17:06:21+01:00</updated>
<published>2014-08-02T16:51:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89903#p89903</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89903#p89903"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89903#p89903"><![CDATA[
No dobra, ale gdzie pojawia się zysk? Jeśli mam wyzerować (czy tam wypełnić jakąś stałą) całą strukturę to nie wnikam w niuanse tylko puszczam memseta dla obszaru o wielkości sizeof(dana_struktura). Jeśli mam przypisać każdemu elementowi coś innego to i tak muszę pamiętać i odróżniać, że element nr 1 to zmienna o takim przeznaczniu i  typie, element nr 2 o siakim itd to dlaczego miałbym się motać w jakiś trikach zamiast po prostu użyć nazwy pola?<br />No dobra, to zależy od konkretnego przypadku, czasem może i w warto. O ile dobrze pamiętam podobną technikę zastosowałeś Mirku w bibliotece dla magicznych diod i zadziałało <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=1774">xor</a> — 2 sie 2014, o 16:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-02T16:38:13+01:00</updated>
<published>2014-08-02T16:38:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89898#p89898</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89898#p89898"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89898#p89898"><![CDATA[
<div class="quotetitle">xor napisał(a):</div><div class="quotecontent"><br />Jak dla mnie to pomysł z repertuaru &quot;dirty tricks&quot;. A co jak struktura, jak to zwykle bywa ze strukturami, będzie się składać z różnych różniastych typów?<br /></div><br /><br />Moim zdaniem tzn inaczej ... gdybym miał napełniać jakąś strukturę ... i nie znałbym jej dokładnie, typów jakie w niej siedzą - to pomysł napełniania przez wskaźnik byłby ... no właśnie mocno chybiony <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />ale ... ale jeśli sam tworzę strukturę i to z myślą właśnie o tym aby później móc się po niej poruszać wskaźnikiem - to co za problem ?<br /><br /><br /><div class="quotetitle">xor napisał(a):</div><div class="quotecontent"><br />....I czy po pół roku sam autor zrozumie &quot;co poeta miał na myśli&quot;. Ale to tylko moje zdanie. To mówilem ja, Jarząbek.<br /></div><br /><br />Do tego są jeszcze komentarze <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: 3 minutach ]</span></strong><br /><br /><div class="quotetitle">wwojtek napisał(a):</div><div class="quotecontent"><br />Co do skakania wskaźnikiem - zgadzam się z przedmówcą  Co więcej - trzeba pamiętać, że kolejne elementy struktury nie muszą zajmować ciągłego obszaru w pamięci. Plugin AVR dla Eclipse domyślnie włącza taką opcję, ale odpalając kompilator &quot;z palca&quot; lub z własnego makefile'a można o tym zapomnieć<br /></div><br /><br />Panowie, wy tak opowiadacie - jakby za programowanie miałby się brać tylko ktoś, kto w ogóle nie wie co robi <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... tak mi się wydaje ...<br /><br />Przy takim podejściu to może w ogóle zrezygnować z C i przejść na Pascala - tam uporządkowano wiele takich miejsc, gdzie w C można sobie zrobić &quot;kuku&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Natomiast to o czym piszemy - dostęp do struktury przez wskaźnik - to jest i zaletą C i wadą ....<br /><br />zaletą bo można gdy trzeba<br />wadą gdy się nie do końca zdaje sobie sprawy ze wskaźników<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 sie 2014, o 16:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2014-08-02T16:36:49+01:00</updated>
<published>2014-08-02T16:36:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89897#p89897</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89897#p89897"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89897#p89897"><![CDATA[
<div class="quotetitle">krafin napisał(a):</div><div class="quotecontent"><br />chcemy od razu całą strukturę wypełnić np. zerami<br /></div>Albo jeszcze prościej:<br /><br />[syntax=c]struct typ_t {<br />   ...<br />};<br /><br />struct typ_t obiekt = {0};[/syntax]<br /><br />Co do skakania wskaźnikiem - zgadzam się z przedmówcą <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Co więcej - trzeba pamiętać, że kolejne elementy struktury nie muszą zajmować ciągłego obszaru w pamięci. Plugin AVR dla Eclipse domyślnie włącza taką opcję, ale odpalając kompilator &quot;z palca&quot; lub z własnego makefile'a można o tym zapomnieć <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez Gość — 2 sie 2014, o 16:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xor]]></name></author>
<updated>2014-08-02T16:30:20+01:00</updated>
<published>2014-08-02T16:30:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89896#p89896</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89896#p89896"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89896#p89896"><![CDATA[
Jak dla mnie to pomysł z repertuaru &quot;dirty tricks&quot;. A co jak struktura, jak to zwykle bywa ze strukturami, będzie się składać z różnych różniastych typów? I czy po pół roku sam autor zrozumie &quot;co poeta miał na myśli&quot;. Ale to tylko moje zdanie. To mówilem ja, Jarząbek.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1774">xor</a> — 2 sie 2014, o 16:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-02T16:14:47+01:00</updated>
<published>2014-08-02T16:14:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89892#p89892</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89892#p89892"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89892#p89892"><![CDATA[
<div class="quotetitle">krafin napisał(a):</div><div class="quotecontent"><br />Można również zdefiniować zmienną wskaźnikową<br /></div><br /><br />Również bardzo dobry pomysł i aż dziw bierze, biorąc pod uwagę to co kolega ma w podpisie, że już kolega tak ładnie śmiga ze wskaźnikami <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> — 2 sie 2014, o 16:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2014-08-02T16:08:23+01:00</updated>
<published>2014-08-02T16:08:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89890#p89890</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89890#p89890"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89890#p89890"><![CDATA[
Można również zdefiniować zmienną wskaźnikową, typu jakiego są wszystkie pola w strukturze i zwiększać cyklicznie wskaźnik i zapisywać pod niego daną wartość. Sposób ten jest szczególnie dobry gdy chcemy od razu całą strukturę wypełnić np. zerami czy inną wartością, robimy to wtedy w pętli.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 2 sie 2014, o 16:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[azorp12]]></name></author>
<updated>2014-08-02T12:13:28+01:00</updated>
<published>2014-08-02T12:13:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89860#p89860</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89860#p89860"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89860#p89860"><![CDATA[
Dziękuję, nie wiedziałem że w ten sposób można to zapisać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1743">azorp12</a> — 2 sie 2014, o 12:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[azorp12]]></name></author>
<updated>2014-08-02T12:05:54+01:00</updated>
<published>2014-08-02T12:05:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89857#p89857</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89857#p89857"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89857#p89857"><![CDATA[
Wiem że tak można. Ale co w przypadku gdy struktura jest zdefiniowana w pliku pewnej biblioteki a pola struktury (wartości tam wpisane) chciałbym modyfikować w trakcie działania programu? Dotychczas stosowałem tego typu zapis ale podobno można to ładniej i mniej rozwlekle zapisać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1743">azorp12</a> — 2 sie 2014, o 12:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-08-02T11:51:16+01:00</updated>
<published>2014-08-02T11:51:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89852#p89852</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89852#p89852"/>
<title type="html"><![CDATA[Re: Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89852#p89852"><![CDATA[
A nie możesz ich zapisać grupowo podczas DEFINICJI struktury ? grupowo - jak do tablicy ? tylko w kodzie się z tym bawisz ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 sie 2014, o 11:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[azorp12]]></name></author>
<updated>2014-08-02T11:46:22+01:00</updated>
<published>2014-08-02T11:46:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89851#p89851</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89851#p89851"/>
<title type="html"><![CDATA[Struktury - jak to krócej zapisać?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7984&amp;p=89851#p89851"><![CDATA[
Witam serdecznie,<br /><br />Załóżmy, że posiadam pewną strukturę. Struktura ma powiedzmy 12 pól i chcę je wszystkie wypełnić. Dotychczas stosowałem zapis tego typu (taki przykład):<br /><br />A -&gt; B1 = 0x0021;<br />A -&gt; B2 = 0x2438;<br />.<br />.<br />.<br />A -&gt; B12 = 0x04FF;<br />Dane wpisywane w pola struktury są tego samego typu<br />Widzicie, zapis tego typu jest czasochłonny. <br />Czy można to krócej i zwięźlej zapisać (lub ładniej)? Znam podstawy C ale ciągle próbuję rozszerzać swoją wiedzę a akurat ten problem nie daje mi spokoju.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1743">azorp12</a> — 2 sie 2014, o 11:46</p><hr />
]]></content>
</entry>
</feed>