Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forums MacBidouille _ La Programmation En Général _ Déclaration de fonction

Écrit par : PapouMAC 25 Jul 2015, 21:22

Bonjour

Je voudrais savoir si il est obligatoire de déclarer une fonction (terminée par un point-virgule) ?
Voir le code ci-dessous, bien que celui-ci fonctionne même si la fonction n'a pas été déclarée.
Et qu'elle est l'intérêt d'une déclaration.
Et si elle est préférable ou la placer ?

Code
             //  Conversion_heure
             //
             //  Created by xxxx on 08/07/2015.
             //  Copyright (c) 2015 xxxx. All rights reserved.
             //
             //
            
            
             #include <stdio.h>
            
            
             /* Fonction conversion en heures et minutes */
            
             float conversionheureMinute(float heure, float *Mn, float *Sc)
             {
                
                 float heureEntiere, calculMn, calculSc, calculMnAvant, calculScAvant;
                 heureEntiere = (int)(heure);
                 calculMnAvant = (heure - heureEntiere) * 60;
                 calculScAvant = calculMnAvant - (int)(calculMnAvant);
                 calculMn = (int)((heure - heureEntiere) * 60);
                 calculSc = (int)((calculScAvant) * 60);
                 *Mn = calculMn;
                 *Sc = calculSc;
                
                 return heureEntiere;
             }
            
             float conversionheureMinute(float, float *, float *);//Déclaration de la fonction
            
             int main(int argc, const char * argv[]) {
                
                
                 float  heureDec, heureMinute;
                
                 float Mn, Sc;
                 heureDec = 2.2625; // 2°15'45""
                 heureMinute = conversionheureMinute(heureDec, &Mn, &Sc);
                 printf("Conversion degrés -> °/mn : %d°%d'%d\"\n", (int)(heureMinute), (int)(Mn), (int)(Sc));
                
                
             }

Écrit par : schlum 25 Jul 2015, 21:24

Il n’est utile de déclarer une fonction que si elle n’est pas définie avant son utilisation.

Par ailleurs, si une fonction n’est définie et utilisée qu’au sein d’un fichier source, il est d’usage de la déclarer « static » (ce qui dispense d’avoir le warning disant que la fonction n’a pas été déclarée, -Wimplicit-function-declaration qui est inclu dans -Wall).

Écrit par : PapouMAC 25 Jul 2015, 21:30

Merci, pour cette réponse rapide.

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)