2011-02-26 15 views
33

मैं अपने सी कार्यों को 2 अलग-अलग फाइलों में लिखना चाहता हूं और सब कुछ संकलित करने के लिए अपने आईडीई (कोड ब्लॉक) का उपयोग करना चाहता हूं।सी प्रोग्राम को एकाधिक फ़ाइलों में कैसे विभाजित करें?

मैं इसे कोड ब्लॉक में कैसे सेट अप करूं?

मैं अन्य फ़ाइल के भीतर से एक .c फ़ाइल में फ़ंक्शन कैसे कॉल करूं?

+0

अपने आईडीई क्या है? – Simon

+3

मुझे नहीं लगता कि यह संभवतः किसी भी योनर कैसे हो सकता है। क्या आपने अभी तक कुछ भी कोशिश की है? क्या आप सी भाषा जानते हैं? क्या आप जानते हैं कि हेडर क्या है? –

+6

ऑफ मौके पर आपको इस बारे में पता नहीं है: सी आमतौर पर संकलित किया जाता है, जबकि * उन्हें कॉल करने के लिए "कॉल [आईएनजी] फाइलों" के बारे में बात करते समय * एक व्याख्या की गई भाषा को महसूस होता है। संकलित भाषाओं के लिए वर्कफ़्लो व्याख्यात्मक भाषाओं के लिए उससे थोड़ा अलग है (हालांकि कई आईडीई आपके द्वारा अंतर छुपाएंगे)। – dmckee

उत्तर

88

प्रश्न बहुत अस्पष्ट है, मुझे लगता है कि आपका मतलब है "विभिन्न .c फ़ाइलों में फ़ंक्शंस को अलग कैसे करें और आईडीई को सबकुछ संकलित करें"। अगर मैं गलत हूं (उदाहरण के लिए आपका मतलब है "आईडीई से .c फाइलों में परिभाषित कार्यों का उपयोग कैसे करें"), बस मुझे टिप्पणियों में बताएं और मुझे अपना जवाब अपडेट/डिलीट करने में खुशी होगी।

सामान्य तौर पर, आप दो अलग-अलग .c फ़ाइलें (जैसे कि, A.c और B.c) में कार्यों को परिभाषित करना चाहिए, और इसी हेडर में अपने प्रोटोटाइप डाल (A.h, B.h, include guards याद)।

जब भी .c फ़ाइल में आपको किसी अन्य .c में परिभाषित कार्यों का उपयोग करने की आवश्यकता है, तो आप संबंधित शीर्षलेख #include करेंगे; तो आप सामान्य रूप से कार्यों का उपयोग करने में सक्षम होंगे।

सभी .c और .h फ़ाइलों को आपके प्रोजेक्ट में जोड़ा जाना चाहिए; यदि आईडीई आपको पूछता है कि उन्हें संकलित करना है, तो आपको संकलन के लिए केवल .c चिह्नित करना चाहिए।

त्वरित उदाहरण:

Functions.h

#ifndef FUNCTIONS_H_INCLUDED 
#define FUNCTIONS_H_INCLUDED 
/* ^^ these are the include guards */ 

/* Prototypes for the functions */ 
/* Sums two ints */ 
int Sum(int a, int b); 

#endif 

Functions.c

/* In general it's good to include also the header of the current .c, 
    to avoid repeating the prototypes */ 
#include "Functions.h" 

int Sum(int a, int b) 
{ 
    return a+b; 
} 

main.c

#include "stdio.h" 
/* To use the functions defined in Functions.c I need to #include Functions.h */ 
#include "Functions.h" 

int main(void) 
{ 
    int a, b; 
    printf("Insert two numbers: "); 
    if(scanf("%d %d", &a, &b)!=2) 
    { 
     fputs("Invalid input", stderr); 
     return 1; 
    } 
    printf("%d + %d = %d", a, b, Sum(a, b)); 
    return 0; 
} 
+0

मैं कोड ब्लॉक – amin

+0

का उपयोग करता हूं हाँ यदि आप एक .c फ़ाइल का उपयोग करना चाहते हैं तो मुझे सही – amin

+0

है, मुझे इसे हेडर फ़ाइल (.h) भी बनाना चाहिए! – amin

संबंधित मुद्दे