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 :

implicit declaration of function lroundf


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut implicit declaration of function lroundf
    Bonjour,

    j'ai un petit pb en C ...
    lorsque je compile avec gcc ... j'ai le warning
    implicit declaration of function 'lrounf'
    qui apparait ...

    j'ai bien un #inculde<math.h>
    et je compile avec un -lm ...
    je respecte long int lroundf(float x);

    pour info ... ça passe bien avec ceil ou floor ... mais
    round lround roundf et lroundf me sont suer!

  2. #2
    Membre éclairé
    Avatar de odsen.s
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 269
    Par défaut
    implicit declaration of function 'lrounf'
    lrounf, ça n'existe pas.
    Faute de frappe peut-être ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut
    ben j'avais l'impression car il existe un manuel de cette function sous linux.
    on lui donne un float et elle renvoie un long ou un int.
    ... avec round le pb est le même;

    Si elle n'existe pas ma question est : quelle fonction permet d'arrondir à
    l'entier le plus proche?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    ceil (plafond) ou floor(plancher) selon que l'on veut l'entier le plus proche par valeur supérieure ou inférieure...

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut
    ok ... si le nombre est positif j'ajoute 0.5 à mon float et j'arrondis à l'entier inférieur (floor).
    si il est négatif je retranche 0.5 et je fait un ceil.

    trop con je n'y avait pas pensé

    en tout cas bizare ce round ... je comprends pas pourquoi il y a un manuel!

  6. #6
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut
    la réponse est dans le man :
    Compile with -std=c99; link with -lm.

  7. #7
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par zac974
    en tout cas bizare ce round ... je comprends pas pourquoi il y a un manuel!
    Le manuel est pour la fonction lroundf(), pas lrounf() qui est indique dans l'avertissement de ton compilateur. Il semble que tu aies fait une faute de frappe dans ton code source...

  8. #8
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Par défaut
    mhm ... autant pour moi
    j'ai fait une faute de frappe mais dans le forum

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    c'est parce que lround (comme round) fait partie de la norme C99, et que certains compilos ne l'inclue pas totalement à l'heure actuelle.

    Or ces fonctions n'existaient pas en C90, ni avant.

    Donc en gros ton compilo n'est pas complètement C99. Mais Emmanuel DeLaHaye en dira plus là-dessus quand il viendra.

    Mais donc de manière la plus portable utiliser floor ou ceil...

Discussions similaires

  1. [gcc/warning] implicit declaration of function ‘close’
    Par TabrisLeFol dans le forum Réseau
    Réponses: 4
    Dernier message: 09/01/2007, 20h48
  2. Réponses: 3
    Dernier message: 18/10/2006, 20h42
  3. implicit declaration of function!
    Par moon93 dans le forum C
    Réponses: 48
    Dernier message: 16/06/2006, 14h55
  4. implicit declaration of function
    Par guillaume_pfr dans le forum C
    Réponses: 7
    Dernier message: 12/06/2003, 10h59
  5. [Dev c++ 4] implicite declaration of function "int kbhi
    Par Torpedox dans le forum Dev-C++
    Réponses: 5
    Dernier message: 01/01/2003, 13h37

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