• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zagwozdka Cpp- Switch

Object Storage Arubacloud
+1 głos
127 wizyt
pytanie zadane 28 kwietnia 2017 w C i C++ przez Wiciorny Ekspert (269,710 p.)

Siemanko,  ciekawi mnie jeden fakt. Dawno temu klepałem program na algorytmy, generalnie :D nie działał bo zamiast funkcji swap, napisałem przypadkowo : 

switch( vector[idx], vector[wiekszy] );

Co ciekawe, program kompilował się bez warningu i bez problemu. W takim razie, co zachodzi w tej funckji wykonując taki błąd? Myślałem, że powinien być zwrócony błąd gdyż z dokumentacji switch

http://en.cppreference.com/w/cpp/language/switch    

Condition- jest 1 argumentowy, stąd nie powininen przepuścić 2 zmiennych- chyba żeby traktował to jako jakiś warunek logiczny np 0,0  w tym wypadku ? Jakiś pomysł. Ogólnie jest to pytanie z ciekawości tak żeby rozwinąc dyskusje, ew. spostrzeżenia, nie jest mi to do niczego potrzebne- ale ciekawość wygrywa.

 

 

1 odpowiedź

0 głosów
odpowiedź 28 kwietnia 2017 przez unknown Nałogowiec (39,560 p.)
komentarz 28 kwietnia 2017 przez Wiciorny Ekspert (269,710 p.)
? Nie bardzo rozumiem, zauważ, że oba argumenty nie zamyka jeden operator (), bo mamy tylko operator funkcyjny () zewnętrzny co innego jakbym zapisał switch(( cos, coś ))

wtedy masz racje.
komentarz 28 kwietnia 2017 przez unknown Nałogowiec (39,560 p.)

zauważ, że oba argumenty nie zamyka jeden operator ()

Nie musi.

komentarz 28 kwietnia 2017 przez Wiciorny Ekspert (269,710 p.)
to dlaczego  w dokumentacji switch'a jest wymagany 1 argument?. Dla innych funkcji jakbyś korzystał, i podał np 2 argumenty, gdzie wymagany jest jeden- po prostu zostanie zwrócony błąd
komentarz 28 kwietnia 2017 przez unknown Nałogowiec (39,560 p.)
switch( vector[idx], vector[wiekszy] );

Nie musi być w nawiasach, bo operator ,(comma) nie jest dla switcha separatorem argumentów. Nawiasy muszą tam być gdzie , służy normalnie jako separator 

1
komentarz 28 kwietnia 2017 przez unknown Nałogowiec (39,560 p.)
Problem w tym, że switch nie jest funkcją.
komentarz 28 kwietnia 2017 przez Wiciorny Ekspert (269,710 p.)
Hmm, dobra przeanalizuje to w takim razie- ale pytanie zostawiam otwarte, a nóż się komuś przyda, lub ktoś coś jeszcze doda od siebie
2
komentarz 28 kwietnia 2017 przez draghan VIP (106,230 p.)

Nie wiem, skąd ujemny bilans tej odpowiedzi. W linku jest odpowiedź na pytanie. Dokładnie wyjaśnione, w jakiej kolejności wyrażenie jest obliczane i co jest wynikowym efektem wyrażenia przecinkowego.

Spójrz może na przykład:

#include <iostream>

int main()
{
    int a = 1;

    if(a == 300, a = 0, a == 0)
    {
        std::cout<<"I'm in!";
    }
}
I'm in!

 

Podobne pytania

0 głosów
2 odpowiedzi 332 wizyt
pytanie zadane 22 sierpnia 2022 w C i C++ przez Daaa22 Dyskutant (8,250 p.)
–1 głos
2 odpowiedzi 179 wizyt
pytanie zadane 1 lipca 2017 w C i C++ przez dzideos Obywatel (1,320 p.)
0 głosów
1 odpowiedź 286 wizyt
pytanie zadane 28 maja 2017 w C i C++ przez Andrzej Sojka Użytkownik (510 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...