Programmation en C
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Programmation en C



  1. #1
    Pilou81

    Programmation en 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
    invite5500baf4

    Re : Programmation en C

    Citation Envoyé par Pilou81 Voir le message
    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.
    Tu mets un "return" suivi de ce que tu veux renvoyer ainsi ce sera, après celle ci, la ligne suivant celle ou tu as fait ton appel de fonction qui sera "exécutée" si la condition est vérifiée.

  3. #3
    Pilou81

    Re : Programmation en C

    Bonjour,

    Merci pour votre réponse mais visiblement on ne peut pas utiliser un return si la fonction est un void fonction (void)??

    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 votre réponse...

    Code:
    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
    .........
    .........

  4. #4
    lou_ibmix_xi

    Re : Programmation en C

    on ne peut pas utiliser un return si la fonction est un void fonction (void)??
    Si bien sûr, il suffit de ne rien retourner:
    Code:
    return;

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

    Re : Programmation en C

    Oui je confirme, mon compilateur ne me l'accepte pas, il veut que j'utilise une fontion du type:

    int fonction (int valeur) et non: void fonction (void)
    car la fonction return doit retourner une valeur au programme principal

  7. #6
    lou_ibmix_xi

    Re : Programmation en C

    int fonction (int valeur) et non: void fonction (void)
    !?! Quel est ce compilateur ?!?
    Si tu déclares ta fonction comme retournant un 'int', alors il faut appeler "return" avec un argument de type entier, si tu déclares ta fonction comme retournant un "void" , alors "return" doit être appeler sans argument...
    La seule fonction à laquelle la plupart (tous?) des compilateurs imposent de retourner un 'int' est pour la fonction "main" qui est le point d'entrée de ton programme. Mais c'est bien la seule fonction dont on impose le type retourné...

  8. #7
    Pilou81

    Re : Programmation en C

    C'est bon j'ais finalement réussi, mon compilateur n'acceptait pas return(); mais return; tout simplement....Merci quand même

  9. #8
    invite1acecc80

    Re : Programmation en C

    Bonjour,


    J'en profite pour poser une question concernant le void main(void):

    Je crois que la norme C90 oblige le main à renvoyer un int (je ne suis pas certain de ça).

    Pourtant j'imagine très bien des programme void main (void): démarrage système d'exploitation (exemple linux 0.01 et autres...).
    Tant que la valeur retour ne sert pas à quoi bon?

    Au final, je ne comprends pas la recommandation de renvoyer un int avec le main...

    A plus.

  10. #9
    Jack
    Modérateur

    Re : Programmation en C

    Je crois que la norme C90 oblige le main à renvoyer un int (je ne suis pas certain de ça).
    Tu as lu ça où?

    un main peut ne pas renvoyer de résultat. Tu ne confondrait pas avec les 1ères normes du C qui renvoyaient un int au cas où le type n'était pas défini?

    C'est bon j'ais finalement réussi, mon compilateur n'acceptait pas return(); mais return; tout simplement
    c'est normal car dans le cas de "return ()" tu signifies au compilateur que le return doit renvoyer une valeur.

    A+

  11. #10
    invite1acecc80

    Re : Programmation en C

    Re,
    Citation Envoyé par Jack Voir le message
    Tu as lu ça où?

    un main peut ne pas renvoyer de résultat. Tu ne confondrait pas avec les 1ères normes du C qui renvoyaient un int au cas où le type n'était pas défini?
    Remarques : ici et

    Sans compter que compiler ce code tout simple:

    Code:
    void main(void)
    {
    printf("essai pour confirmation standard\n");
    return ;
    }
    que ce soit avec les options de gcc: -Wall -pedantic -ansi ou bien -Wall -std=c99 -pedantic
    me renvoie un warning... a priori dans ce cas si standard, je ne recevrai pas de warning de la part du compilateur...

    Mais je me trompe peut-être ou bien void main (void) dans linux n'est simplement pas C standard ( d'ailleurs ça peut se comprendre...).

    A plus.

  12. #11
    Jack
    Modérateur

    Re : Programmation en C

    Il semble que tu aies raison. La fonction main doit retourner une valeur d'après les articles concernant la norme.

    En fait, pour en être sur il faudrait se procurer la norme elle-même, mais c'est au dessus de mes moyens.

    A+

  13. #12
    whoami

    Re : Programmation en C

    Bonjour,

    Oui, la norme est parfaitement claire : main DOIT retourner une valeur entière, généralement 0 (zéro) pour indiquer à l'OS que tout s'est bien passé.

    Toutefois, certains compilateurs spécialisés pour la programmation de micro-contrôleurs peuvent outrepasser cette obligation.

  14. #13
    invite581659a0

    Unhappy Re : Programmation en micro C

    Bonsoir,
    J’ais un petit problème avec mon programme en micro C, j'aimerais faire une conversion d’une valeur décimal en une valeur en degré Celsius, et je trouve pas comment faire l'équation, aidez moi s'il te plais a le faire

    Merci d'avance

  15. #14
    whoami

    Re : Programmation en micro C

    Bonjour,

    Tu dois connaître la définition de ces 2 systèmes de température (sinon, c'est quand même facile à trouver).

    À partir de là, il est très simple de trouver une équation les reliant.

    Ta question n'ayant rien à voir avec le sujet, tu aurais dû en ouvrir un nouveau.

Discussions similaires

  1. Programmation C
    Par invite0d244b79 dans le forum Électronique
    Réponses: 2
    Dernier message: 27/01/2010, 22h08
  2. Programmation C
    Par inviteba67e777 dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 17/05/2009, 17h57
  3. programmation
    Par invite70772835 dans le forum Électronique
    Réponses: 0
    Dernier message: 01/05/2007, 19h03
  4. Programmation 3D
    Par invite769675d7 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 01/11/2005, 06h07
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...