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é
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
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