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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-03-22T22:34:20+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11151&amp;mode</id>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2015-03-22T22:34:20+01:00</updated>
<published>2015-03-22T22:34:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11151&amp;p=124302#p124302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11151&amp;p=124302#p124302"/>
<title type="html"><![CDATA[Re: Program bez zmiennych globalnych. Jak to zrobić ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11151&amp;p=124302#p124302"><![CDATA[
Dzęiki, Panowie.<br /><br /><div class="quotetitle">xentis napisał(a):</div><div class="quotecontent"><br />Przecież wywołując funkcję jako parametr możesz przekazać zerowy element tablicy, albo po prostu wskaźnik do tego elementu.<br />Nie trzeba wtedy żadnej zmiennej globalnej.<br /></div><br /><br />Też racja, choć w tym wypadku wolałbym nie wywoływać funkcji z parametrami - jest ich trochę, i za wiele musiałbym modyfikować, zwłaszcza że tak naprawdę potrzebuję w nich tylko adres pierwszego elementu tablicy.<br /><br /><div class="quotetitle">kamaciej napisał(a):</div><div class="quotecontent"><br />A po co Ci ten wskaźnik? Jeśli zrobisz funkcje dostępową do tablicy np. uint8_t get_value(uint8_t index), i funkcje zapisania do tablicy np. void set_value(uint8_t value, uint8_t index) i ew. zrobisz je inline to będziesz miał ukrytą tablicę bez niepotrzebnego wskaźnika. Obydwie *_value(...) wyprowadzasz do innego pliku a tablicę deklarujesz statyczną i już nie ma funkcji globalnych (bo chyba o nie chodziło a nie o lokalne... ).<br /><br />Co wolisz...<br /></div><br /><br />Twoje metoda, to jest właśnie to, czego szukałem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" />. Jeszcze raz dzięki.<br /><br />Pozdrawiam, QuadMan.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 22 mar 2015, o 22:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2015-03-22T21:32:44+01:00</updated>
<published>2015-03-22T21:32:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11151&amp;p=124291#p124291</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11151&amp;p=124291#p124291"/>
<title type="html"><![CDATA[Re: Program bez zmiennych globalnych. Jak to zrobić ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11151&amp;p=124291#p124291"><![CDATA[
Przecież wywołując funkcję jako parametr możesz przekazać zerowy element tablicy, albo po prostu wskaźnik do tego elementu.<br />Nie trzeba wtedy żadnej zmiennej globalnej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 22 mar 2015, o 21:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2015-03-22T20:53:45+01:00</updated>
<published>2015-03-22T20:53:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11151&amp;p=124283#p124283</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11151&amp;p=124283#p124283"/>
<title type="html"><![CDATA[Program bez zmiennych globalnych. Jak to zrobić ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11151&amp;p=124283#p124283"><![CDATA[
Witam,<br /><br />chciałem napisać oprogramowanie, w którym ograniczę do minimum występowanie zmiennych lokalnych. Załóżmy, że jest tablica, którą zadeklarowałem jako static w jednej z funkcji, na przykład przy inicjalizacji czegoś tam - np. używanego sprzętu. I teraz chcę mieć dostęp do elementów tej tablicy z różnych funkcji programu. Jak to zrobić, bo już się zapętliłem i nie mam na to pomysłu? Skorzystałem ze wskaźnika, któremu przypisałem adres tejże tablicy, no ale...właśnie, przy takim podejściu, ten wskaźnik musi być zdefiniowany jako zmienna globalna. Czy da się to jakoś sprytnie zrobić, aby tejże zmiennej globalnej ( wskaźnika ) się pozbyć ? Pomóżcie, proszę.  Poniżej kod testowy, ilustrujący zagadnienie. <br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 22 mar 2015<br /> *      Author: Adam<br /> */<br /><br />#include &lt;avr/io.h&gt;<br /><br />uint8_t * ptr_tab;<br /><br />void func_init(void);<br />void func1(void);<br />void func2(void);<br /><br /><br />int main(void)<br />{<br />func_init();<br /><br />while(1)<br />{<br />func1();<br />func2();<br />}<br /><br />}<br /><br /><br />void func_init(void)<br />{<br />static uint8_t test_tab&#91;100&#93;;<br />ptr_tab = test_tab;<br /><br /><br />}<br /><br />void func1(void)<br />{<br /><br />uint8_t a;<br /><br /> a= *(ptr_tab+1);<br /><br />}<br /><br /><br />void func2(void)<br />{<br />uint8_t b;<br /><br /> b= *(ptr_tab+10);<br /><br /><br />}[/syntax]<br /><br />Pozdrawiam, QuadMan.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 22 mar 2015, o 20:53</p><hr />
]]></content>
</entry>
</feed>