Question Programmation C
Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

Question Programmation C



  1. #1
    Pilou81

    Question Programmation C


    ------

    Bonjour je débute en programmation C, j'ais fait de l'assembleur par le passé et je cherche l'équivalent de la fonction RETURN de l'assembleur pour le language C.
    Mon probleme est le suivant:
    Je souhaite tester plusieurs variables à l'aide d'un IF par exemple et quand l'une des conditions est vérifier je veux retourner à mon prgramme principale sans tester les autres variables.

    Si j'ai été clair auriez-vous des solutions à me proposer?

    D'avance merci.

    -----

  2. #2
    ftorama

    Re : Question Programmation C

    au risque de te surprendre, c'est return la fonction....à condition d'être dans autre chose qu'une fonction de type void

  3. #3
    invite1cd8f19a

    Re : Question Programmation C

    bonsoir
    est ce que tu peux poster ton code et je peux t'expliquer apres.
    car je peux pas le faire car il y a aura plusieurs situation a traite

    pour retourn ou programme je pense pas qu'il existe

    par exemple si fait moi aussi comme ce truc la

    Code:
    while(1)
    {
    if (condition1) {
                        instruction;
                        instruction;
    }
    if (condition2) {  instruction;
                        instruction;
    }
    }
    le programme va toujour retourner dans la boucle infin et testera chaque fois les conditons
    a+

  4. #4
    gienas
    Modérateur

    Re : Question Programmation C

    Bonsoir Pilou81 et tout le groupe

    Citation Envoyé par bs.amine Voir le message
    ... pour retourner au programme je pense pas qu'il existe ...
    Je pense que return; ou return(); doit le faire, break; doit le faire aussi.

    Mais il me semble que c'est un faux problème.

    Le if n'est sûrement pas le seul. Sortir "prématurément" ne servirait qu'à raccourcir le temps de séjour dans le test, mais n'apporte pas forcément une meilleure lisibilité.

    Les techniques d'assembleur ne sont plus tout à fait d'actualité, quand on programme en langage évolué.

  5. A voir en vidéo sur Futura
  6. #5
    Seb.26

    Re : Question Programmation C

    utilise ce qui est prévu pour ça : else if

    Code:
    if( toto=titi)
    {
    ...
    }
    else if( tutu = pouet )
    {
    ...
    }
    else if( ... )
    {
    ...
    }


    Sinon, tu peux mettre un return, mais c'est pas beau !!!
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  7. #6
    invite1cd8f19a

    Re : Question Programmation C

    Citation Envoyé par gienas Voir le message
    Bonsoir Pilou81 et tout le groupe

    Je pense que return; ou return(); doit le faire, break; doit le faire aussi.

    Mais il me semble que c'est un faux problème.

    Le if n'est sûrement pas le seul. Sortir "prématurément" ne servirait qu'à raccourcir le temps de séjour dans le test, mais n'apporte pas forcément une meilleure lisibilité.

    Les techniques d'assembleur ne sont plus tout à fait d'actualité, quand on programme en langage évolué.
    mais return on l'utilise pour retourner une valeur
    pour le pic avec C quand on fait une fonction quand cette dernière est terminer il retournera au programme car l'instruction return de l'asm existe malgré que l'on a pas spécifié

    en attendant le code source de son programme comme ca on saura
    il veut dire quoi exactement.

  8. #7
    micra

    Re : Question Programmation C

    Citation Envoyé par ftorama Voir le message
    au risque de te surprendre, c'est return la fonction....à condition d'être dans autre chose qu'une fonction de type void
    Bonjour,

    return est aussi correct dans les fonctions void : return(). Mais comme plusieurs l'on dit, si l'on ne retourne pas une valeur, on peut s'en passer en combinant les if, else et autres switch. Personnellement, je ne pense pas que cela améliore toujours la lisibilité. Mais c'est une discussion d'école...

  9. #8
    Seb.26

    Re : Question Programmation C

    Citation Envoyé par bs.amine Voir le message
    mais return on l'utilise pour retourner une valeur
    Non ! ... "return", on l'utilise pour quitter une fonction ... éventuellement en retournant une valeur ... nuance ...

    Mais pour moi, un code plein de "return" est laid et sera un jour ou l'autre source de bugs ...

    Au pire, fais un GOTO genre :
    Code:
    void maFontion(void)
    {
    if( ... )
    {
      goto end_maFonction;
    }
    if( ... )
    {
      goto end_maFonction;
    }
    if( ... )
    {
      goto end_maFonction;
    }
    ...
    end_maFonction:
    ... blabla
    }
    my 2 cents :
    << On ne voit jamais ce que rapportent les bonnes habitudes de programmation, mais on paye souvent ce que coutent les mauvaise ! >>
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  10. #9
    invite1cd8f19a

    Re : Question Programmation C

    ok je pense que j'ai mal explique mon point de vue

    on attend toujours le code pour savoir il veut dire quoi par son instruction return

    bonne nuit

  11. #10
    invite7a49d0d5

    Cool Re : Question Programmation C

    Bonjour,

    >Mais pour moi, un code plein de "return" est laid et sera un jour ou l'autre source de bugs ...

    hi seb, l'idéal, c'est un programme principal comme ça :

    while (1)
    {
    nop
    }

    cad tout tinterruptibiliser...

    et les IFS à la suite... > des SWITCHS...

    après le GOTO c'est vraiment AU TRÈS PIRE...
    ...

    je pense que la memnonique RETURN est beaucoup plus appréciée...
    notamment grâce à son "CALL" (GOSUB)...

    par ceusses qui s'approchent de la "machine"...

    sinon GOTO en C ça existe?

    vede
    ;O]

  12. #11
    invite7a49d0d5

    Cool Re : Question Programmation C

    ps :

    et bonn'journée za toutes zé tous
    ___________________________
    dictonpub : sur TMC y recommencent les
    saisons des "Filles d'à Côté" à zéro...
    je viens de me taper les 3 premiers zépisodes...
    c'est collector...
    http://fr.wikipedia.org/wiki/Les_Fil...c%C3%B4t%C3%A9

    1. Un appartement de rêve
    2. Des voisins charmants
    3. Les clés mentent

  13. #12
    invitea5e3e6e1

    Re : Question Programmation C

    Bonjour
    Pour ce type de test la solution est le "switch case break "plus facile qu'une suite de if else ifelse ...
    Code:
    void test(int valeur)
    {
    switch valeur
    {
       case 1:
       fonction1();
       break;
       case 2 :
       fonction2();
       break
    }
    }
    Si la valeur n'est pas connu on sort de la fonction.
    Si valeur == 1 on appelle la fonction et le break fait quitter sans tester la autre valeurs.
    En C le return (val) retourne une valeur à l'exit de la fonction.
    En assembleur il récupère l'adresse sur la pile, du programme qui à appelé la fonction.
    Le "goto" est à proscrire car il conduit à des programmes "spaghetti" difficile à relire.

  14. #13
    Pilou81

    Re : Question Programmation C

    Bonjour, dsl pour ma réponse tardive, je vous envois une petite partie de mon code source BASIC que je souhaite convertir en C, comme vous pouvez le constater il y a la présence de "RETURN" à plusieurs reprises, je comptais donc utiliser des if et des else if mais dès qu'une condition est vérifiée je souhaite retourner au programme principale. J'avais pensé également au switch mais étant donné que j'ai des conditions de différents types à tester cela ne me semble pas pratique. Pourriez-vous m'éclairer?? et merci dors et déjà pour vos réponses...

    mes_tc: HIgh pintest1
    CLEARWDT

    IF t1finish = 1 THEN GOTO mes_tc1
    IF t1start = 0 THEN
    IF dout_t = 1 THEN
    low pintest1
    RETURN
    else
    TMR1H = 0
    TMR1L = 0
    PIR1.0 = 0
    t1start = 1
    low pintest1
    RETURN
    endif
    else
    IF dout_t = 1 THEN
    t1start = 0
    IF PIR1.0 = 1 THEN
    low pintest1
    RETURN
    .........
    .........

  15. #14
    invitea5e3e6e1

    Re : Question Programmation C

    Hello
    Bon on y va:
    Code:
    // IF t1finish = 1 THEN GOTO mes_tc1
         if(t1finish == 1)
         {
            mes_tc1();
            return;
         }
    
                  //IF t1start = 0 THEN
                  //IF dout_t = 1 THEN
    
         if( t1start == 0 && dout_t == 1)
         {
             low pintest1 (); // si t1start =0 et dout_t=1
         } 
         else
         {
              TMR1H = 0
              TMR1L = 0
              PIR1.0 = 0
              t1start = 1
              low pintest1();
          }
          return; // fin du if else
          .
          .
          .
    voila, y a plus ka ....apprendre le C

  16. #15
    invite1cd8f19a

    Re : Question Programmation C

    F1TVB
    oui comme je vois que c'est bien expliquer
    bonne chance tout le monde

  17. #16
    Pilou81

    Re : Question Programmation C

    ok merci F1TVB, mon compilateur ne prenait pas return(); mais il prend bien return; alalala les joies de l'informatique....

  18. #17
    invite1cd8f19a

    Re : Question Programmation C

    Code:
    {
    char reponse(void)
    	if (!inter1)
    	{
    		antirebond();
    		while(!inter1);
    		l1=!l1;
     		led1=l1;
    		antirebond();
    	}
    
    
    	if (!inter2)
    	{
    		antirebond();
    		while(!inter2);
    		l2=!l2;
     		led2=l2;
    		antirebond();
    	}
    
    rep=(rep & 0b00001111);
    return(rep);
    }
    voila un bout de code ou j'ai utilisé le return est ca marche
    il faut juste bien declarer la fonction

    dans les autres fonction ou je n'ai pas de valeur a retourner j'ai pas mis de return ni rien

Discussions similaires

  1. Question programmation C pour PIC
    Par lcoulon dans le forum Électronique
    Réponses: 3
    Dernier message: 20/10/2009, 11h31
  2. question programmation en C
    Par alexmomo dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 25/03/2009, 17h17
  3. Question programmation en C
    Par invite2642195b dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 04/01/2007, 12h52
  4. Question sur la programmation C
    Par invitef74412c3 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 07/05/2006, 21h03
  5. question de programmation!!!
    Par invitefe27f92b dans le forum Internet - Réseau - Sécurité générale
    Réponses: 3
    Dernier message: 19/08/2004, 22h18
Découvrez nos comparatifs produits sur l'informatique et les technologies.