avec init_Function(bool type) en plus dans le .h et #define TYPE en moins.
Mais bon, si ça marchais je ne serai pas la ..
Alors certes, il y a d'autre solutions, mais il y a une contrainte majeure : INTERDICTION de rajouter un argument dans ma_function ;
Seul une variable à l'intérieur du main, devra décider s'il s'agit de la première déclaration ou de la seconde. PS : on peut très bien lier le main.c et log.c si ça peut aider, et créer un main.h
Par contre t'appelle la fonction avec un argument là ; void ma_function( type ?):/ j'ai absolument besoin de ne pas en utiliser :/ ma_function(void) et de pouvoir définir 2 fonctions différentes avec le même nom selon ce qui est passé en argument à l'exécution du programme. Je sais c'est tirée par les cheveux mais on est en C, il y sûrement un moyen et j'en ai vraiment besoin
Les directives du préprocesseur (#if et compagnie) sont évaluées juste avant la compilation, donc bien avant l'exécution.
Si ta fonction ne peut absolument pas avoir d'argument (drôle de contrainte, mais bon), peut-être que tu pourrais t'en sortir en définissant comme variable globale ce qu'edgarjacobs a utilisé en argument ? Si j'ai bien compris le problème de départ, il s'agira de copier argv[1] dans une variable globale, et c'est cette variable globale qui sera utilisée dans la fonction.
Je viens de faire un truc rapide :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char type[16] ; // variable globale
void fonction(void)
{
printf("Type : %s\n", type) ; // pour vérifier que la fonction
// accède à la variable globale
}
int main(int argc, char* argv[])
{
if (argc < 1) return EXIT_FAILURE ; // ou <= 1 ? À vérifier...
strcpy(type, argv[1]) ;
fonction() ;
return EXIT_SUCCESS ;
}
Ici la fonction 'fonction' se contente d'afficher la variable globale, mais on peut en faire ce qu'on veut, par exemple utiliser la variable globale pour un test.
Merci à vous les deux solutions règlent le problème, pointeur de fonction me parait plus proche de ce que je voulais qu'une variable globale, sujet résolut thx !!
P.S. : la contrainte c'était pour appeler la fonction à de nombreux endroits dans le programme et ne pas avoir a modifié chaque appel si on veux qu'elle s'exécute ou pas, mais le choisir ça part une seule fois ( En gros -debug ou -release dans les arguments ).
Pointeur de fonctions me parait mieux pour gérer les headers et includes . Merci a vous en tout cas
Modifié un .h à partir de son .c ???
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Et son .c :
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent