दिलचस्प पोस्ट
क्या कोई इस टेम्पलेट कोड को समझा सकता है जो मुझे सरणी का आकार देता है? ऑर्डर () फ़ंक्शन को समझना मैं एक पायथन मॉड्यूल को कैसे लोड करूँ? Django प्रोजेक्ट के लिए डायरेक्टरी संरचना का सर्वश्रेष्ठ अभ्यास पिछले ड्रॉपडाउन चयन के आधार पर एक दूसरा ड्रॉपडाउन दिखाएं कैसे PHP चर के लिए jQuery चर पारित करने के लिए? जावास्क्रिप्ट का उपयोग करके मेरे ब्राउज़र संस्करण और ऑपरेटिंग सिस्टम का पता कैसे लगाया जा सकता है? सी # (.नेट 2.0) में विंडोज के लिए इंटरप्रोसेस कम्यूनिकेशन `Constexpr` और` const` के बीच का अंतर क्या मेरे पास कई एक्सकोड संस्करण स्थापित हो सकते हैं? स्थिर और कम्पाइलर अनुकूलन सी ++ में टॉमकेट सर्वलेट में क्लाइंट डिस्कनेक्ट का पता लगा रहा है? Android में वर्तमान अग्रभूमि गतिविधि संदर्भ कैसे प्राप्त करें? पीपी / पीजीएसक्यूएल आउटपुट को पोस्टग्रेएसक्यूएल से एक सीएसवी फ़ाइल में सहेजें पायथन की मानक पुस्तकालय – क्या संतुलित द्विआधारी पेड़ के लिए एक मॉड्यूल है?

चेतावनी: समारोह का अंतर्निहित घोषणा

मेरे कंपाइलर (जीसीसी) मुझे चेतावनी दे रहे हैं:

चेतावनी: समारोह का अंतर्निहित घोषणा

कृपया यह समझने में मेरी मदद करें कि यह क्यों आ रहा है।

वेब के समाधान से एकत्रित समाधान "चेतावनी: समारोह का अंतर्निहित घोषणा"

आप ऐसे फ़ंक्शन का उपयोग कर रहे हैं जिसके लिए कंपाइलर ने एक घोषणा (" प्रोटोटाइप ") नहीं देखी है।

उदाहरण के लिए:

int main() { fun(2, "21"); /* The compiler has not seen the declaration. */ return 0; } int fun(int x, char *p) { /* ... */ } 

आपको मुख्य से पहले अपने फ़ंक्शन को घोषित करने की आवश्यकता है, इस तरह से, सीधे या शीर्षक में:

 int fun(int x, char *p); 

सही तरीके से हेडर में फ़ंक्शन प्रोटोटाइप घोषित करना है।

उदाहरण

main.h

 #ifndef MAIN_H #define MAIN_H int some_main(const char *name); #endif 

main.c

 #include "main.h" int main() { some_main("Hello, World\n"); } int some_main(const char *name) { printf("%s", name); } 

एक फ़ाइल के साथ वैकल्पिक (मुख्य.c)

 static int some_main(const char *name); int some_main(const char *name) { // do something } 

जब आप अपना #include करें main.c में, फ़ाइल के #include संदर्भ को इसमें शामिल करें जिसमें सूची के शीर्ष पर संदर्भित फ़ंक्शन होता है। जैसे कि यह मुख्य सी है और आपका संदर्भित कार्य "SSD1306_LCD.h" में है

 #include "SSD1306_LCD.h" #include "system.h" #include <stdio.h> #include <stdlib.h> #include <xc.h> #include <string.h> #include <math.h> #include <libpic30.h> // http://microchip.wikidot.com/faq:74 #include <stdint.h> #include <stdbool.h> #include "GenericTypeDefs.h" // This has the 'BYTE' type definition 

उपर्युक्त "फ़ंक्शन की अंतर्निहित घोषणा" त्रुटि उत्पन्न नहीं करेगा, लेकिन नीचे-

 #include "system.h" #include <stdio.h> #include <stdlib.h> #include <xc.h> #include <string.h> #include <math.h> #include <libpic30.h> // http://microchip.wikidot.com/faq:74 #include <stdint.h> #include <stdbool.h> #include "GenericTypeDefs.h" // This has the 'BYTE' type definition #include "SSD1306_LCD.h" 

वास्तव में वही # शामिल सूची, सिर्फ अलग आदेश

खैर, यह मेरे लिए किया था

यदि आपके पास सही शीर्षक परिभाषित है और गैर GlibC लाइब्रेरी (जैसे मस्ल सी ) gcc उपयोग कर रहे हैं, तो error: implicit declaration of function भी फेंक देगा error: implicit declaration of function जब GNU एक्सटेंशन जैसे कि malloc_trim का सामना करना पड़ता है।

समाधान एक्सटेंशन और शीर्षलेख लपेट करना है :

 #if defined (__GLIBC__) malloc_trim(0); #endif 

जब आपको error: implicit declaration of function मिलती है error: implicit declaration of function यह भी अपमानजनक फ़ंक्शन को सूचीबद्ध करना चाहिए। अक्सर यह त्रुटि किसी भूल या अनुपलब्ध हेडर फ़ाइल के कारण होती है, इसलिए शेल प्रांप्ट पर आप man 2 functionname टाइप कर सकते हैं और शीर्ष पर SYNOPSIS अनुभाग को देख सकते हैं, क्योंकि यह अनुभाग उन शीर्ष लेख फ़ाइलों को सूचीबद्ध करेगा, जिन्हें शामिल करने की आवश्यकता है। या http://linux.die.net/man/ का प्रयास करें यह ऑनलाइन मैन पेज हैं जो वे हाइपरलिंक और खोजना आसान हैं। कार्यों को अक्सर हेडर फाइलों में परिभाषित किया जाता है, जिसमें किसी भी आवश्यक हेडर फाइलें अक्सर उत्तर होती हैं। सीक्यूचर की तरह,

आप ऐसे फ़ंक्शन का उपयोग कर रहे हैं जिसके लिए कंपाइलर ने एक घोषणा ("प्रोटोटाइप") नहीं देखी है।

मुझे लगता है कि प्रश्न 100% उत्तर नहीं दिया गया है मैं लापता टाइपफ () के साथ मुद्दे के लिए खोज रहा था, जो समय निर्देश को संकलित करता है।

निम्नलिखित लिंक स्थिति पर प्रकाश चमक जाएगा:

https://gcc.gnu.org/onlinedocs/gcc-5.3.0/gcc/Typeof.html

https://gcc.gnu.org/onlinedocs/gcc-5.3.0/gcc/Alternate-Keywords.html#Alternate-Keywords

के रूप में conculsion __typeof__() का उपयोग करने की कोशिश बजाय। gcc ... -Dtypeof=__typeof__ ... भी gcc ... -Dtypeof=__typeof__ ... मदद कर सकता है।

यह तब भी हो सकता है जब आप शीर्ष लेख फ़ाइल को शामिल करना भूल जाते हैं। उदाहरण के लिए यदि आप string.h को बिना स्ट्रेल () का उपयोग करने का प्रयास कर रहे हैं तो आपको यह त्रुटि मिलेगी