2012-11-17 6 views
0

Je dois inclure file_1.c dans main.c. Dans file_1.c, j'ai actuellement plusieurs fonctions. Si je veux appeler ces fonctions dans main.c, que dois-je faire? J'ai #include "file_1.c" dans mon programme principal.#include autres programmes C

+4

* "Je dois inclure dans file_1.c main.c" * Non, vous ne . C'est ce que * [linking] (http://en.wikipedia.org/wiki/Linker_ (computing)) * est pour. –

+0

Quel système d'exploitation, quel compilateur? –

+0

J'utilise Ubuntu. J'ai juste l'impression de ne pas comprendre complètement ce qui se passe aveC#include. Fondamentalement, je veux que les fonctions d'un autre programme C soient appelées dans mon programme principal. – iHubble

Répondre

4

Utiliser approche standard en faisant le fichier d'en-tête

#include"file_1.h"

vous devrez compiler ce "file_1.c" avec main.c et faire un exécutable parce que les appels de fonction sont besoin en temps d'exécution.

Essayez ceci:

créer un fichier d'en-tête file_1.h

#ifndef _FILE_H 
#define _FILE_H 

void foo(int); 
#endif 

donner toutes les declaraion de la fonction et les définitions struct (le cas échéant) ou toutes les variables globales

alors en file_1.c contiendra réelle définition de la fonction

//file_1.c 

    #include "file_1.h" 
    #include <stdio.h> 
    void foo(int x) 
    { 
     printf("%d\t",x); 
    } 

//main.c 
    #include "file_1.h" 

    int main() 
    { 
    int x=10; 
    foo(x); 
    return 0; 
    } 

comprennent le fichier d'en-tête file_1.h dans les deux (main.c et file_1.c) les fichiers c

Dans gcc

gcc -Wall main.c file_1.c -o myexe.out

+4

Vous * pouvez *, vous ne voulez pas. –

+0

Merci .. J'ai corrigé ma réponse maintenant – Omkant

+0

Puis-je demander ce que signifie "_FILE_H"? – iHubble

2

Pourquoi pensez-vous que vous devez faire cela?

Normalement, vous devez ajouter la déclaration de fonctions dans file_1.c dans file_1.h et l'inclure dans main.c. Lorsque vous liez le programme, il vous suffit d'inclure à la fois main.c et file_1.c (qui inclut alors les définitions des fonctions) sur la ligne de commande.