Aktywne Wpisy
![kiupik](https://wykop.pl/cdn/c0834752/493e0ca7c3ad282d2002406e95c8743dd87a624a5155207084f2ff061ce92562,q60.jpg)
kiupik +67
Mirki i Mireczki, pytanie dość głupie...
Czy zaczynacie sie czuć nieswojo w swoich miejscowościach z powodu tylu ludzi czarnoskórych?
Mieszkam w Lublinie, nigdy nie widzialem tylu tych ludzi co teraz XD ʕ•ᴥ•ʔ
Normalnie jakby był jakiś wylew makumb na cale miasto... i powoli człowiek przestaje sie czuć bezpiecznie we własnym mieście a nawet i kraju ( ͡° ʖ̯ ͡°)
#lublin #pytanie #polska
Czy zaczynacie sie czuć nieswojo w swoich miejscowościach z powodu tylu ludzi czarnoskórych?
Mieszkam w Lublinie, nigdy nie widzialem tylu tych ludzi co teraz XD ʕ•ᴥ•ʔ
Normalnie jakby był jakiś wylew makumb na cale miasto... i powoli człowiek przestaje sie czuć bezpiecznie we własnym mieście a nawet i kraju ( ͡° ʖ̯ ͡°)
#lublin #pytanie #polska
![No_mad](https://wykop.pl/cdn/c3397992/No_mad_9GODAfYWwJ,q60.jpg)
No_mad +173
Czy w konstrukcji switch-case
switch (zmienna)
{
case 0: {cos tam instrukcje; break;}
case 1: {cos tam inne instrukcje; break;}
...
}
w instrukcjach mogę modyfikować zmienną "zmienna"? Tzn czy wartosci "zmienna" decyduje o wykonaniu skoku, i już później nie jest sprawdzana, czy też jest to odpowiednik:
if (zmienna==0) {cos tam pierwsze instrukje}
if (zmienna==1) {cos tam inne instrukje}
czyli nie moge w instukcjach zmienić "zmienna" bo w kolejnym kroku jest ona powtórnie sprawdzana i może dojść do wykonania kilku case-ów po sobie, pomimo że miał być wybrany jeden z nich?
if (warunek==0)
{ instrkukcje dla zera; warunek=1;}
else if (warunek==1)
{ instrukcje dla jedynki; warunek=cos innego;}
else if (warunek==...)
itd.
ale dużo ładniej wygląda case, a że warunek jest całkowitą liczbą 0,1,2,3... to powinno się kopilować dużo prościej ze stałymi skokami, niż wolne ify
Możesz zmieniać warunek, sprawdzany jest raz na początku (chyba że umieścisz kod w pętli), case są wykonywane do słowa break
W języku wyższego poziomu instrukcje dla warunków można by zamknąć po prostu w funkcjach, nie wiem na ile to wydajne w C.
Ale mi o to chodzi - by zależnie od wartości "zmienna" wykonać tylko jedną odpowiednią instrukcję (czy tam blok instrukcji), a nie pozostałe. Oraz w następnym przerwaniu - wykonać następny blok instrukcji, a nie tamte poprzednie. I liczy się tu jak najszybsze rozpoczęcie ich wykonywania od momentu przyjścia przerwania, oraz stały czas - by dojście do Ntego
przerwanie -> switch -> wykonaj instrukcje 0 -> koniec-> następne przerwanie -> wykonaj instrukcje 1 etc.? Jeśli tak to switch oczywiście zadziała (o ile warunek nie będzie nigdzie indziej nadpisywany). Bo póki co napisałeś to tak jakbyś chciał zrobić coś bardziej w stylu:
przerwanie -> switch -> wykonaj instrukcje 0 -> wykonaj instrukcje 1->koniec (przynajmniej ja to tak zrozumiałem i chyba moi przedmówcy).
Kod asm, który generuje mi AS 6.0
Widać, że switch case jest bardzo optymalne i chyba lepiej tego na ifach nie zrobisz. Zasadniczo robi compare, branch if i rcall lub rjmp. 4 rozkazy, ile taktów nie liczę, pewnie max 8.
Przerwanie -> switch (nr) -> (wykonaj instrkukcje 0, nr=1) -> koniec
program główny sobie leci...
Przerwanie -> switch (nr) -> (wykonaj instrkukcje 1, nr=2) -> koniec
program głowny dalej sobie leci
Przerwanie -> switch (nr) -> (wykonaj instrukcje 2, nr=3) -> koniec... itd
program główny sobie leci... ale
Myślałem że to się ładniej skompiluje, na '51 w ASM robiło się taki ładny switch-case, że kolejne (stałe/równe) case były od razu wektorem skoku (razy wielkość
ups ... cofam pytanie