Keresés

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

  • jattila48

    aktív tag

    válasz pmonitor #6168 üzenetére

    "Biztos vagyok benne, hogy a megfelelő if-ek megválasztásával ha nem is teljesen..."
    De, teljesen. Csak tök fölösleges, mert csak érthetetlenebb, nehezebben karbantartható, több hibalehetőséget magában rejtő lesz a kód. Tökéletesen egyetértek dabadab-bal, hogy lehet hülyén használni a goto-t, de ezért kategorikusan megtiltani, még nagyobb hülyeség lenne. A dabadab által mutatott példa abszolút tipikus a megfelelő goto használatra, az általad mutatott elkerülése pedig tipikus antipattern. Ennyi erővel a return utasítást is száműzni kéne, mert a fv. közepéből kiugrasz a fv. törzsből (kivéve a fv. végére írt return-t; Pascalban egyébként ezért nincs is return). Remélem az ELTE-n már nem ragaszkodnak ennyire vaskalaposan a struktúrált programíráshoz (mikor én végeztem ott, akkor még igen), mert a mai objektumorientált és eseményvezérelt programok korában részben egyszerűen idejétmúlt. Persze megvan a maga létjogosultsága a józanság keretei között. Hasonlóan értelmetlen káros vaskalaposság a globális változók tiltása. Mindent meg lehet írni globális változók nélkül, csak rengeteg fölösleges paraméterátadással, hibázási lehetőséggel jár, ha eszetlenül ragaszkodunk hozzá. Ha belegondolsz, a C++ osztályok tagfüggvényei számára az adattagok lényegében globális változók.

  • dabadab

    titán

    válasz pmonitor #6168 üzenetére

    Akkor tessék, demonstráld:

    static int kvm_vcpu_check_block(struct kvm_vcpu *vcpu)
    {
    int ret = -EINTR;
    int idx = srcu_read_lock(&vcpu->kvm->srcu);

    if (kvm_arch_vcpu_runnable(vcpu)) {
    kvm_make_request(KVM_REQ_UNHALT, vcpu);
    goto out;
    }
    if (kvm_cpu_has_pending_timer(vcpu))
    goto out;
    if (signal_pending(current))
    goto out;

    ret = 0;
    out:
    srcu_read_unlock(&vcpu->kvm->srcu, idx);
    return ret;
    }

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

Hirdetés