Autor Wątek: Zagadki językoznawcze  (Przeczytany 57644 razy)

Offline Shelim

  • Użytkownik
    • Homepage

# Wrzesień 19, 2009, 21:48:43
kurczę, znałeś to :) A dlaczego? ;)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Kos

  • Użytkownik
    • kos.gd

# Wrzesień 19, 2009, 21:49:12
Sizeof zwraca wynik w wielokrotościach rozmiaru chara. :)

Offline raver

  • Użytkownik
    • Moja strona domowa.

# Wrzesień 19, 2009, 23:42:18
Dab: wynikiem będzie 0, bo ta druga funkcja jest w innym namespace.

Edit: tu mnie masz ;]
« Ostatnia zmiana: Wrzesień 20, 2009, 11:01:04 wysłana przez raver »

Offline Dab

  • Redaktor
    • blog

# Wrzesień 19, 2009, 23:55:13
Ha! Mylisz się. :)
« Ostatnia zmiana: Wrzesień 19, 2009, 23:58:15 wysłana przez Dab »

Offline Aithne

  • Użytkownik

# Wrzesień 20, 2009, 00:04:48
1 - ADL bodajże się to zwało - mamy jeden argument typu A::Zlo, więc szukanie pasującej funkcji odbywa się także w namespace A, a tu już z górki - A::Zlo pasuje do A::Zlo i double pasuje do double.

Offline Dab

  • Redaktor
    • blog

# Wrzesień 20, 2009, 00:05:31
Ja to znam jako KNL (Koenig Namespace Lookup) ;) O to chodzi. :)

Offline Aithne

  • Użytkownik

# Wrzesień 20, 2009, 00:21:35
Co to zrobi?
Kod: (cpp) [Zaznacz]
int foo = /* something */;
switch(foo)
{
case 1:
  puts("one");
  if(false)
case 2:
  puts("two");
  if(false)
case 3:
  puts("three");
  puts("LOL?");
}

Offline świrus

  • Użytkownik
    • Tu trolluje

# Wrzesień 20, 2009, 00:34:39
Powinno być : "LOL?" lub "one\nLOL?" jeżeli foo = 1;

Kod: (cpp) [Zaznacz]
int foo = /* something */;

switch(foo)
{
case 1:
 puts("one");

 if(false)
 {
    case 2:
    puts("two");
 }

 if(false)
 {
    case 3:
    puts("three");
  }

 puts("LOL?");
}

Kod: (cpp) [Zaznacz]
int foo = /* something */;

switch(foo)
{
case 1:
 puts("one");
 puts("LOL?");
}

Kod: (cpp) [Zaznacz]
switch(...)
{
 puts("LOL?");
}
« Ostatnia zmiana: Wrzesień 20, 2009, 00:42:59 wysłana przez rm-f »

Offline Dab

  • Redaktor
    • blog

# Wrzesień 20, 2009, 00:35:36
Dla 1-3, wypisze liczbę słownie + LOL.
labele są dosyć przezroczyste dla reszty kodu, równie dobrze mogą pokazywać na środek pętli.
Albo inaczej: jak już jesteśmy w switchu to labele nas nie interesują. ;)
« Ostatnia zmiana: Wrzesień 20, 2009, 00:44:30 wysłana przez Dab »

Online Liosan

  • Redaktor

# Wrzesień 20, 2009, 00:45:20
a ja jestem ciekawe, czy kompilator wytnie coś co jest pod if(false), nawet jeśli tam jest label :)

Liosan

Offline Dab

  • Redaktor
    • blog

# Wrzesień 20, 2009, 00:50:37
pseudomaszynowo wyglądałoby to tak:

    IF FOO == 1 JUMP CASE1
    IF FOO == 2 JUMP CASE2
    IF FOO == 3 JUMP CASE3
    JUMP AFTERSWITCH
CASE1:
    PRINT "ONE"
    IF FALSE JUMP IF1T
    JUMP IF1F
IF1T:
CASE2:
    PRINT "TWO"
IF1F:
    IF FALSE JUMP IF2T
    JUMP IF2F
IF2T:
CASE3:
    PRINT "THREE"
IF2F:
    PRINT "LOL?"
AFTERSWITCH:

Kompilator widzi, że istnieje ścieżka którą można dostać się do kodu print("two"), więc tego kodu nie wytnie.
Może co najwyżej wywalić linijki "IF FALSE JUMP..."

Offline Aithne

  • Użytkownik

# Wrzesień 20, 2009, 14:09:02
No to jeszcze jedno:
Kod: (cpp) [Zaznacz]
char arr[] = {
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, // H
  10, 11, 12, 13, 14, 15, 16, 17, 18, 19, // R
  20, 21, 22, 23, 24, 25, 26, 27, 28, 29, // \
  30, 31, 32 // _
};
Jaki będzie rozmiar tablicy?

wine

  • Gość
# Wrzesień 20, 2009, 14:10:28
Jaki będzie rozmiar tablicy?
sizeof(arr) :D

Offline Kos

  • Użytkownik
    • kos.gd

# Wrzesień 20, 2009, 14:30:16
Pewnie 30, nice one :) Widziałem kiedyś coś podobnego, w stylu:
Kod: (cpp) [Zaznacz]
int func() {
    const char* txt = "Ding!";
    while (true)
        // W00t W1LL h4PPeN hi3r?????????/
        printf("%s",txt);
    return 5;
}
« Ostatnia zmiana: Wrzesień 20, 2009, 14:34:20 wysłana przez Kos »

Offline ConayR

  • Użytkownik

# Wrzesień 20, 2009, 15:23:23
No to jeszcze jedno:
Kod: (cpp) [Zaznacz]
char arr[] = {
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, // H
  10, 11, 12, 13, 14, 15, 16, 17, 18, 19, // R
  20, 21, 22, 23, 24, 25, 26, 27, 28, 29, // \
  30, 31, 32 // _
};
Jaki będzie rozmiar tablicy?
30 elementów - \ na końcu linii przedłuża komentarz. Klasyczny błąd ludzi rysujących ascii art w komentarzach. ;]