Wątpię, by bez specjalnej deklaracji był tylko we flashu. W czystym C tego nie da się zażądać ( To prawda, czyste C nic nie wie o żadnych FLASH-ach, stosach, RAM-ach i innych (dotyczy to też sekcji, segmentów itp). Ale w realnym życiu używamy konkretnych implementacji, które coś o różnych lokalizacjach w pamięci wiedzą (bo w końcu kod jakoś sie musi...
a tak w ogóle to polecam ci zamiast tworzyć stada zmiennych globalnych - to nauczyć się dobrze korzystać ze struktur i unii do takich celów. Zobaczysz szybko jakie to kolejne ciekawe i super efekty za sobą niesie ;) a zmienne globalne o których piszesz - mam nadzieję że wiesz że są tylko globalne w ramach jednego pliku w którym mieści się kod. Aby były...
jeśli mam dwa pliki *.c to obojętnie gdzie daję pętlę main() ? Tak, byle by gdzieś była, tylko przy kompilacji trzeba uważać. Plik bez main() można skompilować tylko do postaci pliku linkowalnego (.o), czyli w wiekszosci kompilatorow z opcją -c. Potem oczywiście poskładać wszystko za pomocą linkera. Można też kompilować wszystkie pliki za jednym zamachem,...
Witam Deklaruję zmienne w pliku axis_calibration.c [syntax=c] #include "LPC17xx.h" #include "axis_calibration.h" #include "timer_step.h" #include "steper.h" //#include "printer.h" //#include "sys_tick.h" volatile unsigned char x_min_flag=0; volatile unsigned char y_min_flag=0; volatile unsigned char z_min_flag=0; /*task - zadanie * 0-osie do poz 0 *...
Pytanie jest o deklaracje main.c Kod: unsigned int *msg; oraz w spi.h Kod: static unsigned int *msg; Czy ja dobrze rozumiem, że są to dwie zmienne, z czego pierwsza widziana jest tylko w pliku main.c a druga tylko i wyłącznie w pliku spi.c? Mylisz się. Pierwsza zmienna msg jest zadeklarowana wewnątrz funkcji main() i tylko tam jest widoczna. W przypadku...
Na początku chciałbym wszystkim bardzo podziękować za pomoc. Mam wrażenie, że przez ten miesiąc przy pisaniu tej aplikacji, nie raz mi jeszcze pomożecie, o ile nie skończą mi się punkty na zakładanie nowych tematów (: marcinj12 wielkie dzięki za Twój ostatni post - chyba o to chodziło. No ale opiszę problem. Na samym początku mam 2 formy - okno główne...
Witam Programuje w różnych środowiskach od kilku lat ale czegoś takiego jeszcze nie widziałem. Zacząłem dziś tworzyć aplikacje na arma STM32 w środowisku uVision. Stworzyłem nowy plik nagłówkowy w którym chce zadeklarować sobie zmienną globalną. Zastosowałem dyrektywy #ifndef __MAIN_H #define __MAIN_H #endif, wewnątrz zadeklarowałem odpowiednią zmienną,...
Masz jakiś moduł, np od i2c - plik i2c.c zawiera funkcje i zmienne, plik i2c.h zawiera prototypy funkcji i zmienne globalne z "extern". Jeśli nie masz modułów w formie .c + .h to masz jeszcze więcej problemów. Dlaczego uważasz że dużo zmiennych gloalnych to dużo problemów ? To jest znana prawda. Nad zmiennymi globalnymi ciężko zapanować, bo przecież...
JakiSensor = "rainfall" Po co to? skoro masz nazwę sensora juz tu: Sensor = (Ip0 .. "1") Nie używaj zmiennych string !!!!!!!!, zastępuj je liczbami. Nie sprawdzę tego programu w całości bu musiał bym zestawić wszytko co masz podłączone, algorytm wyszukiwania sprawdzony działa. Możesz użyć zmiennych lokalnych, i każdy sensor umieścić w innym pliku, każdy...
NIGDY nie inkludujesz nigdzie plikow C. w pliku naglowkowym danego modulu dodajesz po prostu deklaracje funkcji w postaci (na przyklad) int uart_init(void); pliki h dolaczasz do swoich modulow c tak, aby byly one autonomiczne. zmienne robisz globalne za posrednictwem 'extern' w pliku c jakiegos modulu deklarujesz wiec zmienna np: volatile int zmienna;...
"Spod" keila: void DMAChannel6_IRQHandler(void) a poszło tak: void DMA1_Channel6_IRQHandler(void) Hmm... No to muszę powiedzieć, że w Keilu sobie ktoś wymyślił jakiś dziwny "standard" - w plikach od ST zawsze było (i wciąż jest) właśnie "DMA1_Channel6_IRQHandler". Nawet dla pewności sprawdziłem w najnowszej dostępnej paczce i nie ma tam słowa o takiej...
Bo to jest w sumie logiczne. Działanie urządzenia. Jego logiczna funkcjonalność jest zamknięta w ramach tej klasy. Obiekt tej klasy jest głównym obiektem i to jasne że jego konfiguracja i działanie musi się odbywać właśnie w main() A jak taka "giga klasa" ma się do przerwań, które jakby na to nie patrzeć jest nieodzowną częścią świata niskopoziomowego...
Może ktoś na elektrodzie będzie miał jakąś dobrą propozycję - https://softwarerecs.stackexchange.com/q... Nie wiem czy istnieje jakakolwiek alternatywa do ccmake czy do cmake-gui. CMake to własny język skryptowy, dość prosty i przy okazji dość potężny. Punkt 6 można...
Co najciekawsze, w przypadku innych zmiennych z różnych plików, jest deklaracja extern... Jak sie tak zastanowić, to można doszukać się przyczyny. Najpierw zmienne z EEPROMu były wykorzystywane przez fragment zawarty w całości w jednym pliku źródłowym. Później doszedł drugi plik i występowały oczywiste błędy przy linkowaniu. Jako, że to pierwszy projekt...
zmienne o ktorych piszesz nie sa absolutnie globalne - sa to najzwyklejsze zmienne lokalne funkcji main. jesli nie wierzysz, to sprobuj ich uzyc w dowolnej innej funkcji. proponuje jakas ksiazke opisujaca programowanie w C (moze byc kurs z netu) - odpowie na wszystkie twoje pytania. 4\/3!!
Zacznijmy może od tego, że w tak przygotowanym pliku tekstowym w C++/CLI nie odczytasz, żadnych wartości. Trzeba było by się mocno natrudzić w jakimś języku skryptowym. Nalepiej niech ten plik ma taki kształt: [syntax=c] AB 12 54 GT 89 2 [/syntax] i się nazywa dajmy na to - "TextFile01.txt". Jeżeli korzystasz z operacji na plikach to wykorzystujesz...
Zgadza się. Dlatego każdy plik .h w moim projekcie został podzielony na dwie części. Jedna która dołącza się jeżeli pewien ciąg został zdefiniowany, a druga jeżeli nie. W pliku c dołączam bez definicji i wtedy mam wszystkie zmienne globalne i prototypy funkcji. Jeżeli będą mi one potrzebne w innym pliku c do przed include robię define i wtedy mam tylko...
witam, chciałbym stworzyć pewien sposób komunikacji, przesyłania danych. Założenie jest takie, że sterowanie (zarządzanie bardziej) µC będzie odbywało się poprzez stronę www generowaną przez ten µC (ethernet), więc oczywistym jest że muszę mieć serwer HTTP oraz protokół TCP/IP zaimplementowany na µC. Do µC będzie podpięta karta pamięci...
Można jeszcze zadeklarować zmienną w pliku jednym i drugim z tym że w drugim zmienna z parametrem 'extern' - kompilator będzie szukał zmiennej w innych plikach. No się spóźniłem ;)
Po pierwsze to widzę problem z podziałem zadań i ich enkapsulacją już w pierwszym programie. W głównej funkcji otwierasz plik, ale w innej go zamykasz. Dodatkowo niepotrzebnie operujesz na zmiennej globalnej z pliku. To samo dotyczy wersji obiektowej. Po co obiekt operujący na zmiennej globalnej, skoro sam dla siebie ma otwierać i zamykać plik oraz...
Zmienna static w pliku nagłówkowym? WOW. extern poczytaj...
A na pewno musisz używać zmiennych globalnych? Jeśli tak, to zdefiniuj je w pliku nagłówkowym... Ale bardziej eleganckie może być wykorzystanie statycznej klasy.
Gdzie masz zadeklarowane typy z którymi masz problem. Plik stm32f10x_it.c musi znać te typy (DIR,FIL...). Dołącz do pliku stm32f10x_it.c nagłówek z deklaracjami tych typów.
No ale w moim przypadku jest trudność bo dochodzi problem z obsługa płótna i nie można uzyskać dostępu z innego modułu (przynajmniej ja nie potrafię) Procedura, czy funkcja może mieć parametry, nieprawdaż :?: W czym problem i po co mieszać w to dll (przynajmniej na tym etapie). Oprócz tego masz jeszcze zmienne globalne...
Dołączasz do głównego programu, czyli masz jakiś plik np. main w projekcie. A dołączyłeś do tego projektu plik c zawierający kod twojej "biblioteki"? Pewnie nie, stąd info o braku definicji (btw, wklejaj wyjścia z kompilatora, to ułatwia pomaganie). Czyli wiesz już, że musisz załączyć plik c, oprócz nagłówka. No chyba, że skompilujesz to jako prawdziwą...
Co należałoby poprawić, aby móc wyeliminować ten błąd, uruchomić program i wygenerować plik? Utworzyć plik o nazwie np. main.h , w którym znajdzie się deklaracja funkcji getPlik (): main.cpp dopisać definicję tej funkcji i przenieść deklarację zmiennej globalnej plik do jej wnętrza: plik , użyć funkcji getPlik () np.: Dodano po 4 A sugestia, że w plikach...
Na sam początek to trzeba by było sobie poczytać co to jest definicja funkcji a co to jest deklaracja - bo to są dwie różne rzeczy, a po opisach które widać w tych przedstawionych plikach widać, że kolega miesza pojęcia a to właśnie m.in się mści przy prawidłowym includowaniu plików. Zasada jest taka, że jeśli zrobiłeś sobie np plik z funkcjami do 1wire...
Pamiętaj, żeby nigdy nie definiować zmiennych globalnych w plikach nagłówkowych. Tam można zrobić wyłącznie deklaracje extern.
.data - zmienne statyczne .bss - obszar sterty na zmienne statyczne i globalne niezainicjalizowane .noinit - nalezy do sterty na zmienne niezainicjalizowane zerem .stab i .stabstr sa uzywane do celow debuggera avr-gdb i nie sa ladowane do pamieci
2. A mam wątpliwości ponieważ, przy stestin2 podczas kompilacji kompilator zgłasza: Bo deklarujesz w pliku .h i w .c, który ma #include tego .h - w sumie masz podwójną definicję. Zadeklaruj typy tylko w .h, a przed #include w pliku .c, który ma zawierać zmienne, daj #define extern (puste); możesz też użyć #ifndef extern w pliku .h, żeby pominąć to,...
Hmm, natrafiłem na kolejny problem w srodowisku Buildera. Konkretnie, pisze program i postanowiłem podzielic kod po miedzy kolejne pliki *.cpp z kodem, które beda "includ'owane" w głównym pliku. Cóz, nieco się zdziwiłem gdy: 1) w każdym z plików musze osobno includowac biblioteki string, math etc. 2) zmienne globalne pliku a, nie sa widoczne w pliku...
Dla Twojej wiadomości - extern nie deklaruje zmiennej jako zewnętrznej, tylko informuje kompilator, że taka zmienna występuje w innej jednostce kompilacji (innym pliku) i będzie widoczna dopiero po etapie linkowania. Każdy plik jest kompilowany oddzielnie, więc kompilator nie wie, że coś takiego w ogóle istnieje i gdzie (bo skąd ma wiedzieć). Po to...
w sumie zmienne możne podzielić na kilka rodzajów. Główny podział to globalne i lokalne. Każdy z tych typów może być również zmienną statyczną, przy czym oznacza to co innego dla każdego typu. Lokalna zmienna statyczna jest widoczna tylko w bieżącym bloku kodu (między"{" "}"). Globalna zmienna statyczna to zmienna widoczna tylko w jednym pliku. Z pkt....
Jeśli np. z niektórych zmiennych korzystasz tylko w module usart a nie w main to możesz je zrobić jako global static (chyba te zmienne const się do tego nadają) i wtedy nie trzeba ich też extern robić bo main z nich nie korzysta const musi być znany podczas kompilacji a nie jest. Przerzuć te zmienne do pliku cpp i będzie ok. Ja może wyjaśnię w czym...
1. Tworzenie zmiennej globalnej(np. Public plik as Workbook) otwiera wybraną lokalizacje i pozwala użytkownikowi wybrać konkrety plik 2. Po otwarciu - Set plik = ActiveWorkbook 3. W odpowiednim momencie - plik.Close
Dodałeś do pliku makefile plik lcd.c :?: Jeżeli tak to spróbuj dodać includa pliku ze zmiennymi globalnymi na samej górze pliku main.c (pod standardowymi includami)
Jeśli nie masz pewności co do zapisu konfiguracji, użyjmy zmiennych globalnych i załóżmy, że należy je umieścić w pliku autoexec.bat i ustawić w ten sposób przy każdym uruchomieniu
Chyba nie ogarniasz tworzenia nowego okna ;] Dodałeś deklarację na początku pliku - ok. Dodałeś rejestrację klasy MyRegisterClass - ok. Powiedz mi dlaczego w WndProc masz [syntax=cpp]HWND hRysuj, noweOkno; //?? dlaczego one nie są jako globalne ? po stworzeniu buttona już nigdy nie obsłuzysz jego naciśnięcia bo uchwyt zostanie zapomniany do przycisku...
Ja zerknąłem szybko na kod i mam dla Ciebie rady: 1) Zamień wielokrotne ify na switch 2) Staraj się nie umieszczać deklaracji zmiennych globalnych w pliku nagłówkowym. 3) Sprawdź najpierw działanie programu w symulatorze.
Jestem troche zdziwiony implementacją softwareowych licznikow według opisywanych tu sposobów... Po co wykonywać zbędny kod w ISRrze (czyli load, wyifowanie, dekrementacja,store), i to jeszcze oddzielnie dla kazdej zmiennej "timer", tak jak tu: jednego globalnego licznika idącego sobie po prostu do przodu... jeden raz load, dekrementacja, store (bez...
Tyle ,ze właśnie zasięg tej zmiennej globalnej , jest tylko względem jednego pliku ( static w tym utwierdza ) , więc żadne externy nie wchodzą w grę , i o zasięgu zmiennych trochę wiem , dlatego dziwi mnie to okropnie :)
... Ok. Mam jeszcze jedno pytanie. Jak w pliku c mam się odwołać do tych zmiennych globalnych ?? Externem ?? Nie przechodzi. :( extern char moje_char_w_sekcji_bootloader[]; /*... przykładzik */ char x,y=0; x=pgm_read_byte_far(moje_char_w_sekc... Ponieważ adres danych , umieszczonych w sekcji .bootloader M128...
Taki zapis ( definicja )powinien być w jednym pliku C (zmienna globalna) volatile unsigned char stan = CZEKAJ; w pliku headera (chyba sensor.h) tylko deklaracja extern volatile unsigned char stan; w żadnym wypadku nie można dawać w headerze (pliku *.h) includowanym do wielu plików *.c definicji zmiennej statycznej static unsigned char stan = CZEKAJ;...
eeee... no tak, możesz -.- Po co w ogóle przez define'a w tym przypadku to robić? Po prostu deklarujesz odpowiednią zmienną, a potem z jej wartością robisz już co Ci się tylko podoba. Tylko pamiętaj o zakresie zmiennych. I powszechnie odradza się stosowania zmiennych globalnych!
zeby zrobic sesje nalezy na samym poczatku pliku - jeszcze przed wyslaniem naglowkow wstawic session_start(); a następnie odwoływać się do globalnej tablicy $_SESSION, np: $_SESSION['login']=$login;
Jak zadeklarować zmienną w c++ tak aby była widoczna we wszystkich plikach dołączonych do projektu ?
po co to 'static'? 4\/3!! static przy zmiennej globalnej powoduje, że zmienna jest widoczna tylko w tym pliku w którym została zdefiniowana. Jest to tzw ukrywanie zmiennych globalnych
Wszystko działa. Tyle, że odczyt przeprowadzasz do modyfikowalnego parametru lokalnego. I tyle. nic nie robisz z odczytanym tekstem. Polecałbym albo przekazać w parametrze komponent, albo ewentualnie zwrócić tekst przez parametr wyjściowy (modyfikator out), albo zwrócić poprzez rezultat funkcji. Ale uwaga - tak, jak masz teraz zwrócisz wyłącznie ostatnią...
Masz tendencję do pisania kodu w sposób uniemożliwiający jego łatwą analizę: - nigdy nie grupuj kilku instrukcji w jednej linii kodu - to formalnie dopuszczalne, ale kompletnie nieczytelne - korzystaj ze spacji do odseparowania wizualnie operatorów w wyrażeniach (z wyjątkiem -> , i * jako operatora wyłuskania) Teraz wracając do Twojego problemu: 1....
Ja praktycznie w ogóle nie znam .NETa, ale wydaje mi się, że globalne zadeklarowanie zmiennych w pliku dane.h w ogóle nie jest widoczne wewnątrz klasy okna (przykładowo x to prawdopodobnie jakaś własność obiektu okna, a nie zmienna z drugiego pliku). Zdecydowanie przeniósłbym albo te deklaracje do klasy okna, albo stworzył z pliku jednak klasę, którą...
zmienne globalne ocieplenie globalne globalne ocieplenie
zmywarka migaja diody beben drukarka dekoder cyfrowy głośniki
electronics zasilacz pralka samsung zawiesza
Okres przydatności baterii Li-Po, Li-ion, LiFePO4, NiMH – shelf-life, przechowywanie, marki Panasonic, Samsung, Saft Ekspres Saeco nie spienia mleka - przyczyny i rozwiązania