CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Pourquoi un ';' après un for ?

Koyo-K
Koyo-K
Niveau 9
02 avril 2006 à 14:30:36

Salut, comment ça se fait que pour faire une temporisation, il faille mettre un ";" après le for ? Voilà la fonction en question :
void temporisation()
{
unsigned int j, k;
j = 0;
while(j<30000)
{
for(k=1 ; k<30000 ; k++);
j++;
}
}

Koyo-K
Koyo-K
Niveau 9
02 avril 2006 à 14:32:10

Si j´enlève le point virgule ça marche plus correctement :-/ j´y comprends rien.

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
02 avril 2006 à 17:12:38

Une temporisation ? Tu veux dire attendre x secondes avant de continuer l´éxécution du programme ?
Tu as des fonctions pour ça ... (comme sleep).

Bon sinon pour ton problèmes, moi je dirais que le ; est une instruction "vide" (désolé je me rappele plus du nom exact), et l´instruction a été placé sur la même, ce qui donne un code pas très lisible, ça revient à écire :

for(k=1 ; k<30000 ; k++)
<identation>;

Ou alors plus simplement, le mec qui a écrit ça c´est trompé ;)

Koyo-K
Koyo-K
Niveau 9
02 avril 2006 à 18:12:22

C´est pas pour attendre, mais pour exécuter du code PENDANT x secondes :)
Pour replacer dans le contexte, c´est un programme écrit par mon prof d´électro (vas surtout pas lui dire qu´il s´est trompé, tu t´en mordrais les doigts ;- )) pour afficher des LEDs, donc pour avoir le temps de les voir s´allumer, faut faire cette temporisation.
En fait peut-être que ça marcherait effectivement avec un sleep puisque je pense que le principe est juste d´occuper le programme pendant un certain temps avant de passer à la prochaine instruction... mais bon, le prof a dit alors on fait.

dnob700
dnob700
Niveau 10
02 avril 2006 à 19:15:58

le ; est là exprès et il veut juste dire que le for ne fait rien. en gros c´est comme :

for (k=1 ; k<30000 ; k++)
{
//je ne fais rien
}

Par contre, utiliser cette "technique" pour tempor
iser est pire que tout. Selon l´ordinateur, ça peut mettre 1/100e de seconde et 3 jours pour s´effectuer. Et en plus ça gaspille les ressources processeurs qui ne peuvent plus être utilisé par un autre programme. Moralité, il ne fait jamais jamais faire ça, mais toujours utiliser sleep ou usleep sur les plateforme ou ça existe. Là si c´est pour un microcontroleur, ça n´existe peut-être pas).

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment