Aide sur fonction Delai - C - Programmation
Marsh Posté le 01-10-2006 à 18:47:17
surtout le double while. Quelqu'un y comprend quelque chose ?
Marsh Posté le 01-10-2006 à 18:50:20
bha il se base sur le cycle processeur pour sa sortie de boucle...
franchement intelligent ...
Marsh Posté le 01-10-2006 à 19:04:00
yakameca a écrit :
|
J'espère que tu n'as pas écrit cette abomination... Renseigne toi sur sleep(), nanosleep() (Unixoide) ou Sleep() (Windows).
C'est pas Void, mais void...
Marsh Posté le 01-10-2006 à 19:42:55
KangOl a écrit : bha il se base sur le cycle processeur pour sa sortie de boucle... |
Euh, arrêtez-moi si je dis une bétise, mais je pense qu'en plus l'optimiseur aura vite fait de supprimer tout ça.
Marsh Posté le 01-10-2006 à 20:13:52
Elmoricq a écrit : Euh, arrêtez-moi si je dis une bétise, mais je pense qu'en plus l'optimiseur aura vite fait de supprimer tout ça. |
C'est tout à fait possible. Il faudra du 'volatile' pour empêcher ça...
Marsh Posté le 01-10-2006 à 21:22:03
yakameca a écrit : Pouvez vous m'aider sur un petit probleme en langage C.
|
D'abord tu as une erreur, il faut laisser un espace entre N et 3000 sinon, ça ne passe pas à la compile
Citation : { declaration et initialisation d'un entier non signé propre à la fonction delai |
Ça OK,
Citation : tant que p n'est pas egale à 1, decrementer p |
Faux, tant que p n'est pas égal à 0, on décrémente ensuite.
Citation : tant que le reste de la division de temp divisé par N est different de 1 |
Faux, l'opérateur -- précède l'opérateur %, on décremente temp d'abord puis on prend le modulo N de temp et s'il est égal à 0 on sort de la boucle.
C'est volontairement mal écrit, c'est le genre d'exercice pour faire croire qu'on connaît le C alors que ça n'a rien à voir. Ce n'est pas parce qu'on ne fait pas de fautes de grammaire qu'on sait écrire en Français correct.
Ce qui se conçoit bien s'énonce clairement, et là ce n'est pas le cas. Et comme le dit Elmoricq, il y a de fortes chances pour que tout ça soit viré par le compilo
Peut-être que le créateur de ce bout de programme voulait faire une attente active de p fois 3000 (3 secondes ?) , mais dans ce cas il aurait fallu mettre temp++ et non pas temp--.
Marsh Posté le 01-10-2006 à 18:30:10
Pouvez vous m'aider sur un petit probleme en langage C.
# define N3000
Void delai (int p)
{
unsigned int temp = 0;
while (p--) while (--temp%N);
}
donc j'en es deduit,
fonction delai
{ declaration et initialisation d'un entier non signé propre à la fonction delai
tant que p n'est pas egale à 1, decrementer p
decrementation de temp
tant que le reste de la division de temp divisé par N est different de 1 tourner a gauche
}
Voilà pouvez vous me corrigé merci
Message édité par yakameca le 01-10-2006 à 18:30:36