Comment appeler la fonction externe.c fichier en C?
Mes fichiers sont
// main.c
#include "add.c"
int main(void) {
int result = add(5,6);
printf("%dn", result);
}
et
// add.c
int add(int a, int b) {
return a + b;
}
8 réponses
utiliser #include "ClasseAusiliaria.c"
[Ne pas utiliser de crochets (< >) ]
et je préfère enregistrer le fichier avec .h
extension dans le même Répertoire/dossier.
#include "ClasseAusiliaria.h"
changer votre Main.c
comme ça
#include <stdlib.h>
#include <stdio.h>
#include "ClasseAusiliaria.h"
int main(void)
{
int risultato;
risultato = addizione(5,6);
printf("%d\n",risultato);
}
Créer ClasseAusiliaria.h
comme si
extern int addizione(int a, int b);
j'ai alors compilé et exécuté votre code, j'ai obtenu une sortie de
11
vous devez déclarer
int addizione(int a, int b);
(note du point-virgule))
dans un fichier d'en-tête et inclure le fichier dans les deux fichiers.
Y compris dans Main.c dira compilateur comment la fonction doit être appelée.
Inclure dans le deuxième fichier vous permettra de vérifier que la déclaration est valide (le compilateur se plaindrait si la déclaration et la mise en œuvre n'étaient pas appariées).
alors vous devez compiler les deux *.c dossiers en un seul projet. Les détails dépendent du compilateur.
créer un fichier classAusiliaria.h
et y fournir vos signatures de méthode.
maintenant au lieu d'inclure le .c inclure ce fichier .h fichier.
vous pouvez inclure le .c fichiers, aucun problème avec elle logiquement, mais selon la norme pour cacher la mise en œuvre de la fonction, mais pour fournir les binaires, les en-têtes et les fichiers source techniques sont utilisées, où les en-têtes sont utilisés pour définir les signatures de la fonction où que les fichiers source ont l'implémentation. Lorsque vous vendez votre projet à l'extérieur, il vous suffit d'expédier les en-têtes et les binaires(libs et dlls) de sorte que vous cachez la logique principale derrière votre mise en œuvre de la fonction.
ici, le problème est que vous devez utiliser "" au lieu de <> car vous incluez un fichier qui est situé à l'intérieur du même répertoire vers le fichier où l'inclusion se produit. Il est commun aux deux .c et .h les fichiers
il y a beaucoup de grandes contributions ici, mais permettez-moi d'ajouter la mienne non le moins.
la première chose que j'ai remarqué, c'est que vous n'avez pas fait de promesses dans le fichier principal que vous alliez créer une fonction appelée add(). Ce compte a été fait comme ceci dans le fichier principal:
int add(int a, int b);
avant votre fonction principale, de cette façon votre fonction principale reconnaîtrait la fonction add et essaierait de chercher son code exécutable. Donc essentiellement vos fichiers devrait être
Main.c
int add(int a, int b);
int main(void) {
int result = add(5,6);
printf("%d\n", result);
}
et // ajouter.c
int add(int a, int b) {
return a + b;
}
vous ne devez pas inclure de C-files dans les autres c-files. Créez plutôt un fichier d'en-tête où la fonction est déclarée que vous voulez appeler. Comme: fichier ClasseAusiliaria.h:
int addizione(int a, int b); // this tells the compiler that there is a function defined and the linker will sort the right adress to call out.
dans votre Main.c fichier vous pouvez alors inclure le fichier d'en-tête nouvellement créé:
#include <stdlib.h>
#include <stdio.h>
#include <ClasseAusiliaria.h>
int main(void)
{
int risultato;
risultato = addizione(5,6);
printf("%d\n",risultato);
}
write main.c like this -
caution : while linking both main.0 and ClasseAusiliaria.o should be
available to linker.
#include <stdlib.h>
#include <stdio.h>
extern int addizione(int a, int b)
int main(void)
{
int risultato;
risultato = addizione(5,6);
printf("%d\n",risultato);
}