2013-04-06 6 views
53

में फ़ंक्शन की लागू घोषणा अमान्य है चेतावनी प्राप्त करना: C99 में फ़ंक्शन 'Fibonacci' की लागू घोषणा अमान्य है। क्या गलत है?एक्सकोड - चेतावनी: सी 99

#include <stdio.h> 

int main(int argc, const char * argv[]) 
{ 
    int input; 
    printf("Please give me a number : "); 
    scanf("%d", &input); 
    getchar(); 
    printf("The fibonacci number of %d is : %d", input, Fibonacci(input)); //!!! 

}/* main */ 

int Fibonacci(int number) 
{ 
    if(number<=1){ 
     return number; 
    }else{ 
     int F = 0; 
     int VV = 0; 
     int V = 1; 
     for (int I=2; I<=getal; I++) { 
      F = VV+V; 
      VV = V; 
      V = F; 
     } 
     return F; 
    } 
}/*Fibonacci*/ 

उत्तर

57

समारोह से पहले यह कहा जाता रही है घोषित किया जाना है इससे पहले कि यह उपयोग कर सकते हैं यह

सिर्फ समारोह की घोषणा समारोह जानना चाहता है। यह विभिन्न तरीकों से किया जा सकता है: एक हैडर
इस प्रयोग में प्रोटोटाइप नीचे

  • लिखें यदि समारोह कई स्रोत फ़ाइलों से प्रतिदेय होगी। बस अपने प्रोटोटाइप
    int Fibonacci(int number);
    .h फ़ाइल में नीचे (उदा। myfunctions.h) और फिर #include "myfunctions.h" सी कोड में लिखें।

  • समारोह से पहले यह पहली बार
    इसका मतलब यह है कहा जाता हो रही है, अपने main() समारोह से पहले

  • स्पष्ट रूप से समारोह की घोषणा से पहले यह पहली बार
    बुलाया रही है और नीचे ले जाएं समारोह लिखने
    int Fibonacci(int number){..}
    यह उपर्युक्त स्वाद का संयोजन है: अपने main() फ़ंक्शन

  • से पहले सी फ़ाइल में फ़ंक्शन का प्रोटोटाइप टाइप करें

अतिरिक्त नोट के रूप में: यदि फ़ंक्शन int Fibonacci(int number) केवल उस फ़ाइल में उपयोग किया जाएगा जहां इसे लागू किया गया है, तो इसे static घोषित किया जाएगा, ताकि यह केवल उस अनुवाद इकाई में दिखाई दे।

+1

@ क्यूपिडवोगेल: यदि आपके पास कोई नया प्रश्न है, तो कृपया एक नया प्रश्न पूछें। – eckes

+4

यह एक नया सवाल वारंट करने के लिए बहुत मामूली लग रहा था, इसलिए मैंने यहां पूछा। – SexyBeast

+0

मुझे हेड में 'int Fibonacci (int संख्या) टाइप करना क्यों है? मुझे लगता है कि 'int Fibonacci (int);' ठीक होना चाहिए? – kyle

22

संकलक इससे पहले कि आप इसे कहते

#include <stdio.h> 

int Fibonacci(int number); //now the compiler knows, what the signature looks like. this is all it needs for now 

int main(int argc, const char * argv[]) 
{ 
    int input; 
    printf("Please give me a number : "); 
    scanf("%d", &input); 
    getchar(); 
    printf("The fibonacci number of %d is : %d", input, Fibonacci(input)); //!!! 

}/* main */ 

int Fibonacci(int number) 
{ 
//… 
+0

कई thx! अगर, सी # के साथ कुछ अनुभव था, यह सब एक जैसा नहीं है। – CodingUpStream

0

मेरे पास एक ही चेतावनी है (यह मेरा ऐप नहीं बना सकता है)। जब मैं Objective-C's .m file में जोड़ता हूं, लेकिन इसे .h फ़ाइल पर घोषित करना भूल गया।

0

फ़ंक्शन को ठीक से कॉल करना चाहिए; जैसे- फिबोनाची: इनपुट

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