Hirdetés

Új hozzászólás Aktív témák

  • kovisoft
    őstag

    Nem sértődtem meg. Nézzünk 1 nagyobb projektet. Ezt remélem elfogadod 1 nagyobb projektnek. Itt a 300. sortól ez van(csak a szerkezetet mutatom):
    if (raw)
    goto out;

    switch (token->type)
    {
    .
    .
    }
    out:
    timevar_pop (TV_LEX);

    Ezt miért nem lehet így:

    if (!raw)
    {
    switch (token->type)
    {
    .
    .
    }
    }
    timevar_pop (TV_LEX);

    ??

    A nagy projekt is lépésekből épül fel.

    Ami részletet idemásoltál, abból nem nyilvánvaló, de itt az okokat jobban meg lehet érteni, ha megnézed a forráskód historyját. Ebből látszik, hogy eredetileg csak a switch volt ott, a goto és az előtte lévő rész hiányzott. Aki hozzáadta a raw függvényparamétert, az gondolom nem akarta, hogy az egyébként változatlan switch kompletten mint módosult kód jelenkezzen a historyban. Illetve (ami szintén nem látszik az idemásolt részleten) mivel a switch már így is elég nagy, eléggé tele van if-ekkel és eléggé be van indentálva, ezért az is lehet, hogy nem akart még egyet növelni az indentálás mértékén. Valószínűleg másképp csinálta volna, ha nulláról most írja meg az egész függvényt.

    Szóval ez inkább a "történelmileg így alakult" kódra példa. :)

Új hozzászólás Aktív témák