stałe wartości w pliku c czy h

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Threaded View
CzeB6%E6.
ProszEA% powiedzcie mi czy jak mam tablicEA% np z wartoB6%ciami funkcji
sinus to te wartoB6%ci powinienem umieB6%ciE6% w pliku .c czy .h (czy w
pliku sin.c czy w pliku sin.h)? Jaka jest rF3%BFnica jak umieszczEA% w
jednym a w drugim?
W kursie w EdW STM32 wartoB6%ci umieszczono w sin.c natomiast w kursie
AVR takie dane byB3%y w plikach .h

Przy okazji, spotkaB3%em siEA% z definicjB1% funkcji ktF3%ra miaB3%a taki z=
apis.
volatile unsigned char FUNKCJA(.....)

Chodzi mi o uBF%ycie volatile w funkcji a nie w zmiennej. Po co i
dlaczego?

Re: stałe wartości w pliku c czy h
Quoted text here. Click to load it

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 /
We've slightly trimmed the long signature. Click to see the full one.
Re: stałe wartości w pliku c czy h
Masz racje. Problem w tym ze informacji na temat jak poprawnie budowac
program na uC nie ma, przy najmniej ja nie znam.
JeB6%li wiesz gdzie mozna o tym poczytacto bede wdzieczny

Re: stałe wartości w pliku c czy h
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...


Re: stałe wartości w pliku c czy h
Quoted text here. Click to load it

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 /
We've slightly trimmed the long signature. Click to see the full one.
Re: stałe wartości w pliku c czy h
Quoted text here. Click to load it

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ń.



Re: stałe wartości w pliku c czy h
Quoted text here. Click to load it

To ja wiem i stosuję, chodziło o volatile w kontekście typu funkcji.

--
Grzegorz Niemirowski
http://www.grzegorz.net /
We've slightly trimmed the long signature. Click to see the full one.
Re: stałe wartości w pliku c czy h
OdppowiadajB1%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

Re: stałe wartości w pliku c czy h
Quoted text here. Click to load it

Odpowiadasz mi, czy to znaczy, że ja kiedyś tak stwierdziłem?

Quoted text here. Click to load it

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 /
We've slightly trimmed the long signature. Click to see the full one.
Re: stałe wartości w pliku c czy h

Quoted text here. Click to load it

fakt ..
może tu coś jest :
http://publications.gbdirect.co.uk/c_book/chapter8/const_and_volatile.html

Przykład deklaracji w funkcji jest, ale wyjaśnienia konkretnego przypadku
nie widzę.



Re: stałe wartości w pliku c czy h
No i znowu lipa. Za szybko wkleiłem link.
Nie ma tam odpowiedzi na zadane pytanie.


Re: stałe wartości w pliku c czy h
Quoted text here. Click to load it

Ale sami przyznacie BF%e uzycie volatile do funkcji jest "dziwne"
Znalazlem to w tym programie mp3 pleyer:
http://stm32.eu/index.php?option3D%com_attachments&task3D%download&id3D%96


Re: stałe wartości w pliku c czy h
Quoted text here. Click to load it
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.
Quoted text here. Click to load it
Afaik volatile odnosi się do typu zwracanego (unsigned char) a nie do
funkcji i jest w tym kontekście bez sensu.


--
Pozdrawiam
Michoo

Site Timeline