1
Vývoj / Re:If bez curly brackets?
« kdy: 22. 06. 2025, 14:55:19 »Místo goto používám return.To (v céčku) ale neřeší problém, ale přidělává jinde. Takový (pseudocode) typický blok s returnem, a s chybou kterou jsem tam udelal snadno a rychle...Kód: [Vybrat]sock = malloc();
if (!sock) return -1;
sock->fd = socket();
if (sock->fd == -1) {
free(sock);
return -1;
}
i = bind(sock->fd, ...);
if (i) {
close(sock->fd);
free(sock);
return -1;
}
i = connect(sock->fd,...);
if (i) {
close(sock->fd);
return -1;
}
A když se člověk rozhodne tam něco dodělat, tak musí projít všechny ty cleanupy, které jsou tam 100x
Ale to musis udelat vlastne vzdycky, jedine, ze bys mel neco jako
Kód: [Vybrat]
// ... dalsi pripadne vycistovaci procedury
close_socket:
close(socket);
free_socket:
free(socket);