-
1. Data: 2012-04-22 09:59:08
Temat: stałe wartości w pliku c czy h
Od: slawek7 <s...@w...pl>
Cześć.
Proszę powiedzcie mi czy jak mam tablicę np z wartościami funkcji
sinus to te wartości powinienem umieścić w pliku .c czy .h (czy w
pliku sin.c czy w pliku sin.h)? Jaka jest różnica jak umieszczę w
jednym a w drugim?
W kursie w EdW STM32 wartości umieszczono w sin.c natomiast w kursie
AVR takie dane były w plikach .h
Przy okazji, spotkałem się z definicją funkcji która miała taki zapis.
volatile unsigned char FUNKCJA(.....) {...}
Chodzi mi o użycie volatile w funkcji a nie w zmiennej. Po co i
dlaczego?
-
2. Data: 2012-04-22 13:59:57
Temat: Re: stałe wartości w pliku c czy h
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
slawek7 <s...@w...pl> napisał(a):
> Cześć.
> Proszę powiedzcie mi czy jak mam tablicę np z wartościami funkcji
> sinus to te wartości powinienem umieścić w pliku .c czy .h (czy w
> pliku sin.c czy w pliku sin.h)? Jaka jest różnica jak umieszczę w
> jednym a w drugim?
> W kursie w EdW STM32 wartości umieszczono w sin.c natomiast w kursie
> AVR takie dane były w plikach .h
Odpowiedz sobie na pytanie, po co Ci w ogóle pliki .h. Jeśli masz plik. h.
includowany tylko przez jeden plik .c to nie ma znaczenia, czy deklaracje
zawarte w pliku .h będą w nim, czy w pliku .c. Pliki .h stosujemy, gdy
chcemy funkcje z pliku .c udostępnić na zewnątrz. Wtedy inny plik .c może
sobie includować taki plik .h żeby dostać deklaracje funkcji zdefiniowanych
w tamtym pierwszym .c
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 0 hours, 47 minutes and 10 seconds
-
3. Data: 2012-04-22 19:26:51
Temat: Re: stałe wartości w pliku c czy h
Od: slawek7 <s...@w...pl>
Masz racje. Problem w tym ze informacji na temat jak poprawnie budowac
program na uC nie ma, przy najmniej ja nie znam.
Jeśli wiesz gdzie mozna o tym poczytacto bede wdzieczny
-
4. Data: 2012-04-22 19:36:02
Temat: Re: stałe wartości w pliku c czy h
Od: "identifikator: 20040501" <N...@g...pl>
Masz racje. Problem w tym ze informacji na temat jak poprawnie budowac
program na uC nie ma, przy najmniej ja nie znam.
Jeśli wiesz gdzie mozna o tym poczytacto bede wdzieczny
przecież jest elektroda...
-
5. Data: 2012-04-22 19:37:11
Temat: Re: stałe wartości w pliku c czy h
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
slawek7 <s...@w...pl> napisał(a):
> Masz racje. Problem w tym ze informacji na temat jak poprawnie budowac
> program na uC nie ma, przy najmniej ja nie znam.
> Jeśli wiesz gdzie mozna o tym poczytacto bede wdzieczny
Problem, który poruszyłeś nie jest specyficzny dla uC. Jest to jedna z
podstawowych rzeczy w C ogólnie i możesz o tym poczytać w dowolnej
książce/kursie na temat C. Nie ma tu z resztą jakiejś wielkiej filozofii.
To, na co ewentualnie należy zwrócić uwagę, to czy przypadkiem jeden plik
nie jest includowany kilka razy i nie ma błędu redefinicji. Stosuje się
wtedy konstrukcje typu #ifndef żeby sprawdzić, czy dane makro nie było już
definiowane.
Co do volatile to nie wiem, nie spotkałem się z tym w kontekście funkcji.
Google zwraca niewiele i to w stosunku do metod klas a nie samodzielnych
funkcji. Podejrzewam, że to akurat może być coś specyficznego dla uC.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 6 hours, 37 minutes and 27 seconds
-
6. Data: 2012-04-22 19:52:51
Temat: Re: stałe wartości w pliku c czy h
Od: Michoo <m...@v...pl>
On 22.04.2012 09:59, slawek7 wrote:
> Cześć.
> Proszę powiedzcie mi czy jak mam tablicę np z wartościami funkcji
> sinus to te wartości powinienem umieścić w pliku .c czy .h (czy w
> pliku sin.c czy w pliku sin.h)? Jaka jest różnica jak umieszczę w
> jednym a w drugim?
> W kursie w EdW STM32 wartości umieszczono w sin.c natomiast w kursie
> AVR takie dane były w plikach .h
Rozszerzenie to tylko konwencja, ALE w standardowym podejściu jeżeli
zdefiniujesz zmienne w pliku nagłówkowym to będą one powielone dla
każdego pliku .c który go dołączy. Jeżeli zdefiniujesz w .h jako extern
a potem zdefiniujesz w .c to w wyniku będzie tylko raz.
>
> Przy okazji, spotkałem się z definicją funkcji która miała taki zapis.
> volatile unsigned char FUNKCJA(.....) {...}
>
> Chodzi mi o użycie volatile w funkcji a nie w zmiennej. Po co i
> dlaczego?
Afaik volatile odnosi się do typu zwracanego (unsigned char) a nie do
funkcji i jest w tym kontekście bez sensu.
--
Pozdrawiam
Michoo
-
7. Data: 2012-04-22 20:26:14
Temat: Re: stałe wartości w pliku c czy h
Od: "kk" <...@...pl>
> Co do volatile to nie wiem, nie spotkałem się z tym w kontekście funkcji.
> Google zwraca niewiele i to w stosunku do metod klas a nie samodzielnych
> funkcji. Podejrzewam, że to akurat może być coś specyficznego dla uC.
>
The volatile statement tells the compiler that the variable is constantly
changing.
Chodzi o optymalizację kodu przez kompilator.
Zapobiega przenoszeniu kopii zmiennej do rejestru i wykonywaniu dalszych
operacji na kopii.
Potrzene np przy obsłudze przerwań.
-
8. Data: 2012-04-22 23:18:18
Temat: Re: stałe wartości w pliku c czy h
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
kk <...@...pl> napisał(a):
> The volatile statement tells the compiler that the variable is constantly
> changing.
> Chodzi o optymalizację kodu przez kompilator.
> Zapobiega przenoszeniu kopii zmiennej do rejestru i wykonywaniu dalszych
> operacji na kopii.
> Potrzene np przy obsłudze przerwań.
To ja wiem i stosuję, chodziło o volatile w kontekście typu funkcji.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 10 hours, 23 minutes and 43 seconds
-
9. Data: 2012-04-23 12:58:29
Temat: Re: stałe wartości w pliku c czy h
Od: slawek7 <s...@w...pl>
Odppowiadając temu kto twierdzi ze zrodlwem wiedzy moze byc elektroda.
To jakies nieporozumine. Sa tam super ludzie ktorzy potrafia zrozumiec
poczatkujacego ale w kazdym dziale jest moderator ktory sami wiecie co
robi albo pojawiaja sie inni uzykownicy.
Potem jak sie zapytasz to az krew zalewa czytajac niektore nie na
temat odpowiedzi
-
10. Data: 2012-04-23 17:05:11
Temat: Re: stałe wartości w pliku c czy h
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
slawek7 <s...@w...pl> napisał(a):
> Odppowiadając temu kto twierdzi ze zrodlwem wiedzy moze byc elektroda.
Odpowiadasz mi, czy to znaczy, że ja kiedyś tak stwierdziłem?
> To jakies nieporozumine. Sa tam super ludzie ktorzy potrafia zrozumiec
> poczatkujacego ale w kazdym dziale jest moderator ktory sami wiecie co
> robi albo pojawiaja sie inni uzykownicy.
> Potem jak sie zapytasz to az krew zalewa czytajac niektore nie na
> temat odpowiedzi
Do mnie się nikt nie czepiał a odpowiedzi dostawałem, ale ja się mało tam
udzielam. W każdym razie nie wiem po co piszesz o tym w tym wątku, on nie
jest o Elektrodzie.
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 0 hours, 9 minutes and 11 seconds