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 :

Mauvais return ?


Sujet :

C

  1. #21
    Membre averti
    Homme Profil pro
    très occupé
    Inscrit en
    Juillet 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : très occupé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 137
    Points : 411
    Points
    411
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    (...)

    Citation Envoyé par leternel Voir le message
    devient avantageusement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	if (finale != 0) {
    		j = my_strlen(finale);
    	} else {
    		j = 0;
    	}
    Ça, en revanche, je suis personnellement contre. Instaurer des règles de codage pour conserver une cohérence, c'est généralement une bonne idée mais il faut encore qu'elles soient justifiées.
    Je n'aime pas non plus mettre des accolades là où il n'en faut pas.

    Cela dit, j'ai déjà vu cette règle de style imposée/recommandée et elle peut avoir une justification dans le contexte du développement d'un code à plusieurs ou simplement pour réduire les chances de modifications erronées du code postérieures.

    Imaginons qu'un nouveau développeur (un peu distrait ou habitué à Python) travaille sur le projet, et se rende compte qu'il faut ajouter une autre instruction au else.

    Il commettrait une erreur en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        if (finale != 0)
            j = my_strlen(finale);
        else
            j = 0;
            faire_autre_chose();
    une telle modification produirait une erreur aléatoire difficile à détecter, le faire_autre_chose(); étant exécuté systématiquement alors qu'il ne devrait s'exécuter qu'en fonction de la valeur de finale.

    Citation Envoyé par Obsidian Voir le message
    Les accolades ont une signification sémantique. La grammaire du C définit le « if » comme suit : « if ( expression ) statement ». C'est la déclaration elle-même (statement) qui peut prendre plusieurs forme, et notamment celle de « déclaration composée » (compound statement). Ça veut dire qu'à ce stade, les accolades servent à faire exactement ce à quoi elles servent en français et en mathématiques : insérer plusieurs entités groupées là où on en attend en principe qu'une seule. C'est aussi pour cela que les accolades peuvent ouvrir un cadre de pile, ce qui permet entre autre d'y déclarer de nouvelles variables locales: il s'agit de sauvegarder un contexte qui va être modifié par les appels successifs que le bloc contient. Du coup, ouvrir une accolade pour n'y insérer qu'un seul élément n'a pas beaucoup de sens, sauf à vouloir explicitement définir un singleton, puisque par défaut le C attend une déclaration unique. (...)
    oui, tu as raison.

    mais la question de style fait débat :

    http://programmers.stackexchange.com...k-braces-or-no
    http://c2.com/cgi/wiki?AlwaysUseBracesOnIfThen
    ce débat concerne aussi d'autres langages dans lesquels les accolades sont utilisables de façon similaire :
    https://google-styleguide.googlecode...es-always-used (Google est pour, dans son style Java)
    http://qt-project.org/wiki/Qt_Coding...a27c31ee8ad0d6 (le projet Qt est contre, dans son style C++)


    Eks

  2. #22
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Arrêt au débat, avant qu'il ne se lance:
    Si j'ai recommandé les accolades, c'est entre autre parce que quelqu'un qui est encore à l'école pourrait en tirer parti.
    En fait, je recommande d'une manière général d'avoir une séparation très visible entre la fin de l'instruction (composée ou non) du else et la suite systématique.
    Une ligne blanche suffirait aussi
    D'un autre coté, souvent, un if else simple est très souvent remplaçable par un ternaire.


    Quand au problème actuel, je n'arrive pas à voir où il se trouve, désolé.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #23
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    @YukiShao: Peux-tu poster my.h?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #24
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 631
    Points : 30 865
    Points
    30 865
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par -Eks- Voir le message
    mais la question de style fait débat :
    Ca peut être intéressant d'en discuter (quoique à bien y réfléchir il y aura à mon avis autant de bons arguments en faveur du pour qu'en faveur du contre) mais une fois que le problème aura été résolu...

    Citation Envoyé par YukiShao Voir le message
    Pour le NULL, je pensais que NULL était une macro pour 0.. Dans ce cas là, ça ne me dérangeait pas de l'utiliser (le 0) pour des pointeurs sur char ... :s
    Aujourd'hui NULL c'est 0. Peut-être que demain ce sera -1... Peut-être que demain, (char*)0 ne sera pas codé de la même façon que 0. C'est pour ça qu'il y a des macros: pour centraliser les modifs. Mais bon ça n'influe pas ici.

    Citation Envoyé par YukiShao Voir le message
    Pour le my_strncpy, c'est un strncpy modifié avec exactement le même comportement que celui du système, et je l'ai testé sous toutes ses formes.
    Ok, pense à vérifier que dans le cas où "n" caractères ont été copiés, le '\0' ne soit alors pas rajouté (c'est le comportement du vrai). Là ça peut influer...

    Citation Envoyé par YukiShao Voir le message
    Pour le PS N°2, je n'ai pas jugé nécéssaire de le linker vu qu'il ne contient que des includes systèmes, mon define de SIZE_BUFFER ainsi que le prototype des fonctions (et aussi le typedef de ma structure).
    Héhé, c'est justement ce qui nous intéresse si on veut pouvoir tester !!!

    Citation Envoyé par YukiShao Voir le message
    En transformant ce strlen modifié pour renvoyer un unsigned long, la valeur affichée pour une chaîne de 149 caractères est : 18 446 744 073 709 551 509. Véridique. (Mais marche très bien jusqu'à 127 caractères);
    Bon là faut vraiment arrêter. Il te faut maintenant recopier ton strlen() dans un nouveau code minimaliste ne contenant qu'un main(), un appel et un affichage pour isoler/vérifier l'erreur. Accessoirement nous dire avec quoi tu compiles, sur quel OS, etc. Si le dernier printf() placé avant le return affiche la bonne valeur mais que le printf() de la valeur retournée n'affiche pas la même chose, il faut alors admettre que ça vient du compilo quoi !!!
    Et aussi vérifie si plusieurs essais consécutifs avec la même chaine (149 caractères) te donnent le même résultat "18 446 744 073 709 551 509". Au fait, as-tu remarqué que "18 446 744 073 709 551 509" c'est "0xffff ffff ffff ff95" ??? C'est bizarre autant de "f". On dirait qu'il y a eu à un moment donné une expansion du bit de signe...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #25
    Membre à l'essai
    Homme Profil pro
    Master Informatique seconde année
    Inscrit en
    Septembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Master Informatique seconde année
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Bonjour à tous et re aux autres,

    Ayant vu le débat sur les accolades ou pas, j'imagine que c'est à chacun son bon vouloir ... Merci des précisions en tout cas !

    Pour ce qui est du strncpy modifié, j'ai également testé le cas où n caractères sont copiés en dehors du \0. Il ne le copie pas (j'ai étudié scrupuleusement le man 2 strncpy).

    Pour le my.h, je vous le donne en pièce jointe dès maintenant.

    Pour les essais consécutifs, je teste et vous dit ça !

    Edit : Depuis hier, je ne teste qu'avec un appel à get_next_line() ainsi qu'à my_strlen() pour ensuite afficher la valeur de retour du my_strlen(), le tout dans un petit main.
    Edit 2: Et les tests en boucle donnent toujours la même valeur, celle écrite au dessus (quelle que soit la chaîne, j'ai modifié plusieurs fois).
    Edit 3: Je compile avec gcc en console, tout comme j'édite aussi mes fichiers via emacs en console. Par contre, je n'arrive pas à savoir quelle est la version de gcc. Je viens de faire un man gcc mais il est tellement dense que je n'ai pas du voir l'option identique à --help. Aussi, je suis sous Ubuntu Gnome 14.04 LTS 64 bits. Pour ce qui est du make clean, je me suis fait un alias via le .bashrc pour que quand je marque "maker", il me make puis make clean le tout.

    Merci encore pour votre aide.
    Fichiers attachés Fichiers attachés
    • Type de fichier : h my.h (1,2 Ko, 77 affichages)

  6. #26
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 345
    Points : 1 211
    Points
    1 211
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void my_strlenmod(char *, int *);
    Je suppose que c'est le prototype de la version "prend un pointeur sur int".
    Ça peut sembler con dit comme ça, mais tu as pensé à changer le type du retour de la fonction (int au lieu de void) ?
    Edit: ok, t'as répondu avant que je pose la question

  7. #27
    Membre à l'essai
    Homme Profil pro
    Master Informatique seconde année
    Inscrit en
    Septembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Master Informatique seconde année
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par the Hound Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void			my_strlenmod(char *, int *);
    Ceci est un my_strlen() permettant justement d'éviter ce bug en envoyant un l'adresse d'un int à ce strlen_mod. Celui que j'utilise ET qui bug est bien my_strlen(); qui lui renvoie un int.

  8. #28
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 345
    Points : 1 211
    Points
    1 211
    Par défaut
    Citation Envoyé par YukiShao Voir le message
    Ceci est un my_strlen() permettant justement d'éviter ce bug en envoyant un l'adresse d'un int à ce strlen_mod. Celui que j'utilise ET qui bug est bien my_strlen(); qui lui renvoie un int.
    Voilà pourquoi faut toujours fournir les prototypes

    N'empêche, c'est bizarre que le compilo n'ait même pas généré un warning alors que les signatures étaient différentes.

  9. #29
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    ah, un char! Je l'aurais (avais?) parié...

    127+1=-128, c'est toujours la faute d'un char.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  10. #30
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 631
    Points : 30 865
    Points
    30 865
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par the Hound Voir le message
    Voilà pourquoi faut toujours fournir les prototypes
    Bien vu !!!

    Citation Envoyé par the Hound Voir le message
    N'empêche, c'est bizarre que le compilo n'ait même pas généré un warning alors que les signatures étaient différentes.
    Je crois que dans les normes, une signature ne concerne que les paramètres passés et non le type renvoyé...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #31
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    Citation Envoyé par YukiShao Voir le message
    Pour ce qui est du make clean, je me suis fait un alias via le .bashrc pour que quand je marque "maker", il me make puis make clean le tout.
    euh... il vaut mieux faire un clean quand c'est vraiment nécessaire, et ne compiler que les changements en temps normal.
    En gros, l'alias devrait plutot être alias maker="make clean && make".

    Pour avec les makefiles comprenant un all, alias maker="make clean all" est meilleur, car comme il n'y a qu'une commande, les redirections fonctionnent correctement.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  12. #32
    Membre à l'essai
    Homme Profil pro
    Master Informatique seconde année
    Inscrit en
    Septembre 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Master Informatique seconde année
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2014
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Re,

    Désolé, encore une fois, je n'ai pas pu répondre avant (code de la route, quand tu nous tiens).

    ... Sérieusement ? Enfin j'veux dire, j'ai pu être con à ce point là sans m'en rendre compte ? Comment c'est possible ?

    Bref, en tout cas, je vous remercie beaucoup parce que j'aurais jamais eu la présence d'esprit de check le .h sans vous ...
    Et merci aussi pour toutes ces indications que je vais devoir relire avec attention, j'ai beaucoup appris ne serait-ce que le temps d'un thread comme celui-ci.

    En tout cas, je promets de toujours check mon .h avant de poster quoi que ce soit à l'avenir...
    Un grand merci encore pour cette présence et attention, et peut-être à bientôt pour un nouveau problème débile..

    @+

  13. #33
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par YukiShao Voir le message
    ... Sérieusement ? Enfin j'veux dire, j'ai pu être con à ce point là sans m'en rendre compte ? Comment c'est possible ?
    Félicitations, tu viens de recevoir tes premiers gallons de programmeur. Enfin, si ce ne sont pas les premiers, ce sont au moins ceux du cycle en cours.
    Tout professionnel de la discipline s'est posé au moins une fois la même question. En fait, on l'entend même éclater parfois spontanément au milieu d'un bureau silencieux.

    Ce n'est pas la dernière fois que tu vas passer trois jours sur un point-virgule mal placé ou autre ânerie. Fort heureusement, on apprend vite à reconnaître ces pièges et on n'y tombe que rarement par la suite.

    Un grand merci encore pour cette présence et attention, et peut-être à bientôt pour un nouveau problème débile.. @+
    Tu seras le bienvenu. Juste un détail, pour la suite, n'oublie pas de donner la version du compilateur, comme demandé, ici avec « gcc -v ».
    La dernière Ubuntu (14.04 LTS), que tu utilises, fournit la version 4.8.2

    gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) 

  14. #34
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 186
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 186
    Points : 17 126
    Points
    17 126
    Par défaut
    C'est en comprenant son erreur qu'on apprend le mieux

    Bonne continuation !
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  15. #35
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 610
    Points : 1 534
    Points
    1 534
    Par défaut
    Hello,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    replace = malloc((j + cmp + 1) * sizeof(char*));
    Pourquoi char * ? char suffit amplement.

    A+,

    Edgar;
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent

  16. #36
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 631
    Points : 30 865
    Points
    30 865
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par edgarjacobs Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    replace = malloc((j + cmp + 1) * sizeof(char*));
    Pourquoi char * ? char suffit amplement.
    Citation Envoyé par Sve@r Voir le message
    ... dans la fonction char *replace(...), tu as char *replace=malloc((j + cmp + 1) * sizeof(char*))...
    Citation Envoyé par YukiShao Voir le message
    Pour ce qui est du sizeof(char*), là, c'est totalement de ma faute et je me demande comment je ne l'ai pas vu avant.. C'est grave là.
    Déjà dit et déjà répondu...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [pl/pgSQL 7.2] Returns Opaque?
    Par Gruik dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/10/2003, 17h50
  2. return ();exit() ;
    Par Zazeglu dans le forum C
    Réponses: 12
    Dernier message: 10/10/2003, 21h56
  3. [C#] Changer le focus avec la touche return
    Par sblanc74 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 01/10/2003, 19h38
  4. return
    Par drKzs dans le forum C
    Réponses: 3
    Dernier message: 18/09/2003, 23h36
  5. mauvais code
    Par moumou dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 17/04/2003, 16h56

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