Protéger mes prototypes de la double inclusions
Résolu
fire3d
Messages postés
15
Statut
Membre
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir,
J'aimerais comprendre clairement ce qu'est la double inclusion et comment protéger mes prototypes face a ce problème.
J'ai pour le coup déjà essayer de le faire, en vain malheureusement -->
Merci pour votre aide d'avance. :)
J'aimerais comprendre clairement ce qu'est la double inclusion et comment protéger mes prototypes face a ce problème.
J'ai pour le coup déjà essayer de le faire, en vain malheureusement -->
#IFNDEF __protect__ #define __protect__ void ft_putchar(char c); void ft_putstr(char *str); void ft_putnbr(int nombre); int ft_strcmp(char *s1, char *s2); int ft_strlen(char *str); void ft_swap(int *a, int *b); #ENDIF
Merci pour votre aide d'avance. :)
2 réponses
-
Bonjour,
Attention aux directives préprocesseurs, elles sont sensibles à la casse.
#IFNDEF
#ENDIF
Ce n'est pas bon. Il faut mettre :#ifdef #endif
En utilisant ce principe, tu ne dois pas avoir le problème de double inclusion... Peux-tu montrer un exemple concret, car c'est bizarre.
As-tu bien vérifié que tes prototypes ne sont définies que dans le header ?
Cdlt,-
Bonjour
Je pense qu'il veut dire par protection des inclusions, la possibilité d'inclure une seule fois l'en-tête de fichier et non deux fois, alors pour ça il faut rajouter à la suite de tes directives de préprocesseur certaines directives, je les connais pas tous mais celle-ci doit répondre à ta demande, mais dans le cas contraire réfère-toi à la documentation du langage C qui pourrais plus te renseigner ou ce lien Wikipédia https://en.wikipedia.org/wiki/Include_guard
Exemple#ifndef DEF_MONFICHIER_H_INCLUDE #define DEF_MONFICHIER_H_INCLUDE #include <stdio.h> #endif
à bientôt
-
-
J'ai trouver la solution Merci. :)
#ifndef FT_H # define FT_H void ft_putchar(char c); void ft_putstr(char *str); void ft_putnbr(int nombre); int ft_strcmp(char *s1, char *s2); int ft_strlen(char *str); void ft_swap(int *a, int *b); #endif