Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 13 sty 2026, o 02:26


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 30 mar 2017, o 23:20 
Offline
Użytkownik

Dołączył(a): 22 lut 2015
Posty: 61
Pomógł: 0

Witam, koledzy czy może ktoś mi wyjaśni taką strukturę nie do końca ją rozumie a kompilator wywala błąd ''array type has incomplete element type ''
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Będę wdzięczny za wyjaśnienie tego :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 02:09 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

masz zbędny przecinek na końcu
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 05:08 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27446
Lokalizacja: Szczecin
Pomógł: 1045

Harry napisał(a):
masz zbędny przecinek na końcu
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

To raczej nie powinno być problemem, można w C spokojnie dawać w tym miejscu przecinek

komunikat mówi o tym, że jest niekompletny typ elementów struktury i wydaje się to oczywiste bo ... gdzie jest zdefiniowany typ ?

Z tego zapisu struktury wynika, że:

1. albo brak definicji typu "sensor_reg"
2. albo gdzieś jest wcześniej ten typ zdefiniowany ale niepotrzebny jest specyfikator struct

bo taki zapis jak niżej już np działa poprawnie w AVR GCC

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 1 minucie ]

chyba, że to jest inny kompilator niż AVR GCC i on dopuszcza specyfikator reg przed definicją tablicy - no ale wynika wtedy z tego, że brak w programie tego o czym mowa w pkt.1 czyli gdzieś wcześniej definicji typu albo jakiś plik jest niezainkludowany wcześniej

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 07:38 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Hmm, myślałem że to tablica, a nie struktura, ale dobrze wiedzieć że może być nadmiarowy przecinek ;) Czy w C można zrobić dynamiczną tablicę, tzn chodzi o rozmiar? Sorka za offtop.

Wysłane z mojego GT-I8200N przy użyciu Tapatalka

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 08:05 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27446
Lokalizacja: Szczecin
Pomógł: 1045

Harry napisał(a):
Czy w C można zrobić dynamiczną tablicę, tzn chodzi o rozmiar?

a co masz na myśli ? bo nie rozumiem?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 08:20 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Chodzi mi o nie deklarowanie ilości elementów, czyli np mam 5 a później chciałbym w locie dorzucić kolejne 3. Czy tak się da, bez przepisywania do nowej tablicy.

Wysłane z mojego GT-I8200N przy użyciu Tapatalka

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 08:53 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27446
Lokalizacja: Szczecin
Pomógł: 1045

no nie nie ... struktura tzn jej wewnętrzne elementy muszą być znane kompilatorowi na etapie kompilacji ;) chyba że myślisz o dynamicznej alokacji pamięci za pomocą operatora NEW ... to się da teoretycznie - lecz nie widziałem takich przypadków zastosowań.

Chyba że ci chodzi o definiowanie tablicy - bo piszesz o jakimś przepisywaniu. Po co przepisywać - posługuj się tworzeniem typów strukturalnych dzięki "typedef" to nic nie będziesz musiał przepisywać - tylko dodać pola w definicji typu i każda struktura tego typu od razu będzie miała te dodane pola ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 31 mar 2017, o 09:09 
Offline
Użytkownik

Dołączył(a): 14 sie 2016
Posty: 905
Pomógł: 39

Tak, miałem na myśli tablicę. Czasami ciężko się przestawić na obiektówkę, w sumie tak jest prościej, bo odwołuje się bezpośrednio do obiektu, to niestety głupie przyzwyczajenia jeszcze z czasów czystego VB ;) No cóż, narazie nauka idzie strasznie opornie i na każdym kroku robie babole :/

Wysłane z mojego GT-I8200N przy użyciu Tapatalka

_________________
Moje porady są błędne,nie czytać,zbanować od razu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2017, o 20:19 
Offline
Użytkownik

Dołączył(a): 22 lut 2015
Posty: 61
Pomógł: 0

Dziękuję Mirku za wytłumaczenie :D ostatnie dni nie miałem czasu ale wracam do zabawy znowu, i jeszcze nie rozumie ile elementów może zawierać sama tablica czy dobrze rozumie że będzie to określać deklaracja czyli w twoim przykładzie uint8_t a; uint16_t b, bo rzeczywiście w fragmencie moim przeoczyłem w kodzie deklaracje
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


a później w samej definicji tablicy jest umieszczonych więcej elementów jest to błąd czy jeszcze czegoś nie rozumiem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2017, o 20:28 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27446
Lokalizacja: Szczecin
Pomógł: 1045

Kulfi27 napisał(a):
i jeszcze nie rozumie ile elementów może zawierać sama tablica

no albo podajesz je w nawiasach kwadratowych albo - skoro w nawiasach pusto to przecież dalej masz inicjalizację wartościami

Jak myślisz, taka tablica, ile będzie miała elementów?

char tab[] = "mirek";

no toż tyle iloma elementami ją zainicjalizujesz przecież - w tym wypadku 6

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2017, o 21:17 
Offline
Użytkownik

Dołączył(a): 22 lut 2015
Posty: 61
Pomógł: 0

No fakt ale zamuliłem puste nawiasy kwadratowe :oops: , brnąc dalej mam rozumieć że stworzyłem tablice dwuwymiarową
a taki zapis {64, 488 }, to podstawienie wartości pod {reg, val}?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 kwi 2017, o 22:22 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27446
Lokalizacja: Szczecin
Pomógł: 1045

Kulfi27 napisał(a):
brnąc dalej mam rozumieć że stworzyłem tablice dwuwymiarową


hmmm panie kochany ;)

tab[]

to tablica jednowymiarowa natomiast

tab[][]

to tablica dwuwymiarowa - zaś

tab[][][]

to tablica trzy-wymiarowa itd .... PO tym się rozpoznaje rodzaj tablicy

ty zaś napełniasz tablicę, której elementy są strukturami przecież rozumiesz? Każdy element to struktura - stąd masz

{64, 488 },

bo to jest JEDEN element przecież (ta mała strukturka)


Autor postu otrzymał pochwałę

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2017, o 22:02 
Offline
Użytkownik

Dołączył(a): 22 lut 2015
Posty: 61
Pomógł: 0

Już załapałem :D , dziękuje za wytłumaczenie czas na testy na żywym organizmie :o



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO