Executer une fonction avant un "return" - C - Programmation
Marsh Posté le 28-05-2004 à 14:18:30
Si tu as pas peur du code non portable microsoft, http://msdn.microsoft.com/library/ [...] tement.asp 
A+,
Marsh Posté le 28-05-2004 à 14:23:56
merci gilou de ta largesse mais c'est du C++ à la marde MS 
 
et nul besoin de tout ça en C++, un simple objet avec un destruccteur suffit
Marsh Posté le 28-05-2004 à 14:35:46
Je lui ai mis ca parce que il a  posté ca dans la rubrique C, et que ce genre de truc marche dans du code C avec le compilo microsoft. 
Pour du C++, il y a mieux adapté, certes. 
A+,
Marsh Posté le 28-05-2004 à 14:39:56
ça marche dans du code C tout simplement parce que VC++ ne fait pas la différence
Marsh Posté le 28-05-2004 à 14:46:39
Si si: selon que l'extension de ton fichier est .c ou .cpp, le compilo VC++ a pas le meme comportement. La meme technique est utilisée avec le xml/html aussi d'ailleurs: du html est pas parse de la meme maniere par IE selon que l'extension est .htm ou .xml 
A+,
Marsh Posté le 28-05-2004 à 14:56:57
Dans Borland C++Builder j'utiliserais le try...__finally, équivalent du try...finally de Delphi, mais dans le genre code non portable on ne fait pas mieux 
Marsh Posté le 28-05-2004 à 15:06:30
Voial un exemple : 
 
| Code : 
 | 
 
 
Voila  
 
Marsh Posté le 28-05-2004 à 15:07:33
Pas mal, c'est tout simple et je n'y avais pas songé ![[:figti] [:figti]](https://forum-images.hardware.fr/images/perso/figti.gif)
Marsh Posté le 29-05-2004 à 11:45:41
| antp a écrit : Pas mal, c'est tout simple et je n'y avais pas songé  | 
 
+1, c'est carrément pas idiot et totalement portable !
Marsh Posté le 29-05-2004 à 11:47:37
![[:blueflag] [:blueflag]](https://forum-images.hardware.fr/images/perso/blueflag.gif)
Marsh Posté le 29-05-2004 à 18:25:28
Tu peux même faire « Watcher w(__func__) » pour être sûr de toujours avoir le bon nom de fonction (__func__ est dans C99). Avec GCC tu peux utiliser __PRETTY_FUNCTION__, qui contient en plus la signature de la fonction.
Marsh Posté le 29-05-2004 à 19:59:34
Ouais, parce qu'en C je me demande ce que serait "Watcher". Il n'y a pas de classes en C, non ? 
Marsh Posté le 28-05-2004 à 11:42:11
Je cherche une fonction équivalente à 'atexit()' mais qui serait executée à la fin de chaque fonction.
Qui permettrai ce genre de chose:
Ca me permettrais de logger les début et fin de fonction facilement