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 :

warning: control reaches end of non-void function


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Points : 32
    Points
    32
    Par défaut warning: control reaches end of non-void function
    Bonjour,

    j'ai un programe de la forme ci-dessous, la compilation se passe sans probleme et le programme marche. Cependant a la compilation j'ai le warning:

    warning: control reaches end of non-void function

    Merci de votre aide ....

    Fichier 1 : programme main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #include <iostream>
    #include function.h
    int main(int argc, char *argv[])
    {
    ....
    }

    Fichier 2: function.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #include <iostream>
    int function(float *a, int a, int*& c)
    {
    ....
    }

  2. #2
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    A mon avis, c'est que dans 'function', il n'y a pas de return pour tous les cas possibles. En particulier, il n'y a par exemple pas un return à la fin de ta fonction, qui permettrait d'effectivement retourner un int à chaque fois. Cela signifie qu'il y a un potentiel cas où ta fonction ne retournerait ... rien.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par Alp Voir le message
    A mon avis, c'est que dans 'function', il n'y a pas de return pour tous les cas possibles. En particulier, il n'y a par exemple pas un return à la fin de ta fonction, qui permettrait d'effectivement retourner un int à chaque fois. Cela signifie qu'il y a un potentiel cas où ta fonction ne retournerait ... rien.
    Merci :
    j'ai mis la fonction function en type "void" et le warning a disparu, je ne comprends pas pourquoi ca a marche ?

    Il y a un autre warning

    warning: comparison between signed and unusigned integer

    dans la 2 ligne du morceau de code ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    vector <int> neighbor;
     
    for(int i=0; i<neighbor.size();i++)


    Merci

  4. #4
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    au lieu de
    Edit : explication () => size_t permet de représenter des entiers non signés, alors que int tout court, ça peut être négatif.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    Citation Envoyé par loisir1976 Voir le message
    j'ai mis la fonction function en type "void" et le warning a disparu, je ne comprends pas pourquoi ca a marche ?
    Tout simplement parce que void n'est pas un type de valeur, et qu'une fonction de type void ne renverra donc pas de valeur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. control reaches end of no-void function
    Par membreComplexe12 dans le forum C++
    Réponses: 7
    Dernier message: 22/01/2011, 23h28
  2. Warning: Usage of a local non-builtin name
    Par Linael dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 24/06/2009, 15h50
  3. Réponses: 3
    Dernier message: 29/01/2009, 10h43
  4. Multicast Delegate non void
    Par albu77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/09/2008, 23h37
  5. Réponses: 2
    Dernier message: 27/01/2008, 22h22

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