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



Teraz jest 4 kwi 2026, o 07:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 24 lis 2016, o 12:03 
Offline
Nowy

Dołączył(a): 14 paź 2016
Posty: 21
Pomógł: 0

Prosiłbym o pomoc w zrozumieniu kolejności wykonywania tego kodu, na początku inicjalizowana jest zmienna eStatus typu eMBErrorCode wartością MB_ENOERR, zakładając że warunek jest spełniony w pierwszym if'ie tak, że zmienna eStatus przyjmie wartość eMBRTUInit( ucMBAddress, ucPort, ulBaudRate, eParity );, czy druga instrukcja if( eStatus == MB_ENOERR ) zostanie wykonana ? Dlaczego kompilatorowi nie przeszkadza przypisanie do zmiennej eStatus funkcji eMBRTUInit( ucMBAddress, ucPort, ulBaudRate, eParity ); jeżeli deklaracja typu eMBErrorCode wygląda następująco:

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


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: 24 lis 2016, o 14:05 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

A dlaczego ma przeszkadzać?
eMBErrorCode jest typem wyliczeniowym czyli w tym
przypadku może przyjmować wartości od 0 do 7
zmienna eStatus jest tego same typu i też może takie
wartości mieć. W linii 9 przypisujesz jej wartość MB_ENOERR
czyli po prostu 0 (zero).

Tak mi się przynajmniej wydaje ;-)

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2016, o 15:04 
Offline
Nowy

Dołączył(a): 14 paź 2016
Posty: 21
Pomógł: 0

eStatus = eMBRTUInit( ucMBAddress, ucPort, ulBaudRate, eParity ); jaka wartość tutaj przyjmuje?
i jaki wpływ ma to na linnie 16, if( eStatus == MB_ENOERR ) ??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2016, o 15:49 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Rozkokoszony napisał(a):
eStatus = eMBRTUInit( ucMBAddress, ucPort, ulBaudRate, eParity ); jaka wartość tutaj przyjmuje?
i jaki wpływ ma to na linnie 16, if( eStatus == MB_ENOERR ) ??

A to przecież zależy co zwróci funkcja eMBRTUInit()
A jak Ci się wydaje?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Jest zwykłym warunkiem. W zależności od tego co zwróci funkcja warunek albo się wykona albo nie ;-)


Autor postu otrzymał pochwałę

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2016, o 16:27 
Offline
Nowy

Dołączył(a): 14 paź 2016
Posty: 21
Pomógł: 0

Ok rozumiem już, dzięki :!:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2016, o 14:07 
Offline
Nowy

Dołączył(a): 14 paź 2016
Posty: 21
Pomógł: 0

Prosilbym jeszcze o pomoc

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


o wskaznikach dowiedzialem sie troche z bluebooka, ale nie bardzo moge sobie poradzic ze zrozumieniem dzialania tego fragmentu.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 1 gość


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO