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



Teraz jest 29 kwi 2026, o 04:21


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 14 kwi 2015, o 12:41 
Offline
Nowy

Dołączył(a): 26 gru 2013
Posty: 22
Pomógł: 0

Cześć

zdefiniowałem sobie następujące makro:
Cytuj:
#define MODE(x) MODE##x()

void MODE1(void);
void MODE2(void);
void MODE3(void);
void MODE4(void);
void MODE5(void);

uint8_t a=2;

int main(void)
{
//Dziala
MODE(1);

//Nie dziala
MODE(a);
}


Nie zrozumieć dlaczego makro ze zmienną nie chce odpalić, kompilator wyrzuca błąd że brak funkcji MODEa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 12:43 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

To poczytaj czym są makra. Może trochę Ci się rozjaśni ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 12:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Zgadza się taka funkcja przecież nie istnieje. To makro nie pobiera wartości zmiennej tylko dokleja jej argument.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 12:50 
Offline
Nowy

Dołączył(a): 26 gru 2013
Posty: 22
Pomógł: 0

To jest tylko część kodu i później pasowało by mi by zmienna a - która w trakcie kodu się zmienia, powodowała wybranie odpowieniej funkcji MODE. Teraz już rozumiem gdzie robię błąd. Czyli inaczej niż funkcją tego nie obejdę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 13:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Można użyć tablicy wskaźników na funkcję:

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 13:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Zgadza się, sam nie używam wcale makr, ale tutaj chciałem zachować chociaż szczątkową zgodność z kodem Kol. Linean, który pytał o makra :)
Swojej odpowiedzi nie będę edytował, aby była nasza ciągłość i sens wypowiedzi ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 kwi 2015, o 15:16 
Offline
Nowy

Dołączył(a): 26 gru 2013
Posty: 22
Pomógł: 0

Dzięki wszystkim :) Problem solved



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: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 7 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