win 32 et utilisation de time.h - C - Programmation
Marsh Posté le 12-05-2005 à 20:23:46
niemad a écrit : J'utilise un code en C qui contient des fonctions de la librairie time.h. |
Attention, ftime() n'est pas une fonction standard, et je doute que tu en ais vraiment besoin...
Citation :
|
C'est correct, mais améliorable :
Au début du code, ou mieux, dans un header de portage (portage.h) :
|
L'utilisation devient alors transparente :
|
Mais as-tu essayé ftime() sous Windows ? En effet, il est rare qu'on utilise directement des fonctions _xxx() dans du code d'application. Je ne serais pas surpris qu'il existe une macro ftime().
Citation : Si quelqu'un a une idee pour expliquer mes mesures de temps negatives... |
Montre le code exact, réduit, complet et compilable qui fait le défaut.
Marsh Posté le 13-05-2005 à 16:15:03
Citation : Montre le code exact, réduit, complet et compilable qui fait le défaut. |
Le probleme c'est que l erreur ne se produit pas a chaque fois. J'ai une mesure de temps negatif environ 1% du temps seulement. Je vais essaye de reduire le code au minimum vital pour le mettre sur le forum car le programme en lui meme fait plusieur millier de lignes de code.
C est vrai que je n'avais pas pense a changer les lignes en mettant la declaration de ftime dans un header de portage. Ca peut effectivement rendre mon code un peu plus lisible.
Citation : Mais as-tu essayé ftime() sous Windows ? |
Je n'ai pas utilise ftime sous Windows car j'ai recupere le code tel quel et je n'ai pas modifie les parties contenant ftime() mais effectivement c'est un test que je devrais faire.
Merci
Marsh Posté le 12-05-2005 à 18:53:19
Bonjour,
J'utilise un code en C qui contient des fonctions de la librairie time.h. Tout marche bien lorsque j'utilise ce code sous Windows (Visual C++). Ce code est ecrit de facon a pouvoir etre aussi utilise sous Unix/Linux. J'ai donc essaye de compiler le code sous Cygwin (avec gcc) et tout marche bien, sauf que les mesures de temps de calcul effectuees avec les fonctions de time.h me renvoient parfois des valeurs negatives!
Les lignes de code correspondantes a l'appel des fonctions en cause sont du style suivant:
Je ne suis pas vraiment sur du comportement du #ifdef WIN32. J'ai cherche dans le programme et il n'y a aucune declaration du genre #define WIN32. Est ce que c'est un parametre que le compilateur verifie automatiquement? (i.e. si compilation sous windows WIN32 est definie et sinon non)
Si le compilateur verifie ca tout seul est ce que quelqu'un connait le comportement de gcc lorsqu'il compile un soft sous Cygwin. J'ai essaye de voire dans le man de gcc s'il y avait des option a rajouter dans ma ligne de compilation mais j'ai rien vu d'interessant a ce niveau la.
Si quelqu'un a une idee pour expliquer mes mesures de temps negatives...