• 2
  • 3
2023-07-25, 04:00
  #25
Bannlyst
Citat:
Ursprungligen postat av bosscs2
Varfr chatgpt:ar du inte sdant? Fr du ett bra instuderingsexempel i samma vnda.

Fanns tidigare inlgg i trden med resulat ifrn chatgpt , men moderatorn gillade icke detta.
Citera
2025-02-07, 06:19
  #26
Citat:
Ursprungligen postat av vhe
Man blir frlten om man dper om goto till throw eller raise, och kallar det hela fr "exceptions". D r det tydligen inte lngre ondska ;-)
Haha, exakt

Men faktum r att man blir frlten av kompetenta C-kodare nr man anvnder goto p just det sttet. Det r ett vanligt stt att hantera fel i C. Exempelvis detta:

Kod:
int getData(void) 
{
    char *buf = malloc(1000);

    if(!buf) goto FREE_BUF;

    FILE fptr = fopen("data.conf", "r");

    if(!fptr) goto CLOSE_FILE;

    sqlite3 *db;
    int r = sqlite3_open("mydb.db", &db);

    if(r) goto CLOSE_DB;
    
    int ret = do_work(buf, fptr, db);

CLOSE_DB:
    sqlite3_close(db);

CLOSE_FILE:
    fclose(buf);

FREE_BUF:
    free(buf);

    return ret;
}   

eller

Kod:
for(int i=0; i<x; i++) {
    for(int j=0; j<y; j++) {
        for(int k=0; k<z; k++) {
            if( /* some condition */ ) goto END;
            do_work(i,j,k);
        }
    }
}
END:
Citera
2025-02-07, 22:14
  #27
Medlem
Citat:
Ursprungligen postat av nerdnerd
GOTO ska man ju helst inte anvnda, men jag vet iaf en bank dr det anvnds systematiskt i deras COBOL-koder fr att snabbt ta sig ur loopar nr det blir generalknas.
Ngot sdant skulle man aldrig frfalla till i C. Dr skriver man break istllet.
Citera
  • 2
  • 3

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in