IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

question sur la compilation


Sujet :

C

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    925
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 925
    Par défaut question sur la compilation
    Bonjour,

    Ce serait pour savoir , quand un compilateur C rencontre ce genre d'expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for ( i = 5, j = 10 ; i + j < 20; i++, j++ )
    est ce qu'il le convertit en while consigné sur une mémoire (buffer) ou génére t'il directement du code executable sans à le convertir en while.

    Car tous les soirs je suis sur un compilateur C et je ne sais pas si il faut le traiter directement ou le convertir en while .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    i=5;
    j=10;
    while (i+j<20)
    {
    ...
    i++;j++;
    }
    Merci ;

  2. #2
    Membre très actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2011
    Messages : 247
    Par défaut
    Je ne comprends pas vraiment ton problème... mais le 1er code marche sur ton compilateur non?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    est ce qu'il le convertit en while consigné sur une mémoire (buffer) ou génére t'il directement du code executable sans à le convertir en while.
    C'est-à-dire ?

    En tout cas, ces deux codes C génèrent exactement le même code assembleur, qui est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	mov	ecx, 5
    	mov	edx, 10
    L5:
    	inc	ecx
    	inc	edx
    	lea	eax, [ecx+edx]
    	cmp	eax, 19
    	jle	L5

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Ces deux codes sont strictement équivalents. Le seul cas où un for peut ne pas être équivalent à un while, c'est quand il y a continue dans l'intération. En effet la boucle suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(init ; condition; increment)
    {
        body;
        continue;
    }
    est équivalente à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    init;
    while (condition)
    {
        body;
        increment; /* increment est toujours exectue juste avant continue */
        continue;
    }
    Et non à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    init;
    while (condition)
    {
        body;
        continue;
        increment;
    }

Discussions similaires

  1. Question sur la compilation des classes
    Par azerty.123.450 dans le forum Visual Studio
    Réponses: 3
    Dernier message: 26/02/2010, 15h32
  2. question sur la compilation d'un projet
    Par eric_vi dans le forum Qt
    Réponses: 1
    Dernier message: 10/01/2010, 19h55
  3. Questions sur la compilation
    Par LeGEC dans le forum EDI
    Réponses: 3
    Dernier message: 13/05/2008, 12h17
  4. Questions sur la compilation Kernel sous Ubuntu
    Par jaymzwise dans le forum Administration système
    Réponses: 2
    Dernier message: 12/03/2008, 15h29
  5. [Tomcat] question sur la compilation des Jsp
    Par Invité dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 01/06/2006, 10h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo