Du coup, j'ai regardé ce truc que je ne connaissais pas. defer c'est une nouvelle fonctionnalité pour le C qui vient d'être ajouté à GCC et Clang.
Cela permet d'exécuter un bloc à la fin d'un bloc en logique FILO.
Je vous remets l'exemple du blog ci-dessous.
{void*p=malloc(25);mtx_lock(&mut);staticuint64_tcritical=0;critical++;while(something)cnd_wait(&cond,&mut);...usepunderprotectionofmut...{critical--;}// from 3rd defer{mtx_unlock(&mut);}// from 2nd defer{free(p);}// from 1st defer}
# C'est quoi defer ?
Posté par alkino . Évalué à 2 (+0/-0).
Du coup, j'ai regardé ce truc que je ne connaissais pas.
defer c'est une nouvelle fonctionnalité pour le C qui vient d'être ajouté à GCC et Clang.
Cela permet d'exécuter un bloc à la fin d'un bloc en logique FILO.
Je vous remets l'exemple du blog ci-dessous.
Équivalent à :
[^] # Re: C'est quoi defer ?
Posté par David Delassus (site web personnel) . Évalué à 2 (+0/-0).
L'attribut
cleanupexiste depuis longtemps (2003 pour GCC, courant 2010s pour Clang).La nouveauté, c'est l'ajout de cette fonctionnalité au standard via https://www.open-std.org/JTC1/SC22/WG14/www/docs/n3734.pdf
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.