संभव डुप्लिकेट:
Problem compiling K&R exampleसूचक प्रकार मेल नहीं खाता चेतावनी
हाल ही में मैंने कश्मीर & द्वारा सी प्रोग्रामिंग भाषा के माध्यम से अपने रास्ते काम कर रहा है आर
धारा 5.11 में वे पॉइंटर्स को फ़ंक्शंस में शामिल करते हैं और उनके उदाहरण में टाइप करने के बाद - एक क्विकॉर्ट कार्यान्वयन जहां हम compari को पॉइंटर प्रदान करते हैं बेटा फ़ंक्शन जिसे हम उपयोग करना चाहते हैं - मुझे कंपाइलर से चेतावनी मिल रही है: सशर्त अभिव्यक्ति में पॉइंटर प्रकार मेल नहीं है।
उदाहरण है कि चेतावनी चलाता है से लाइन है (मेरे संकलक पर OS X 10.5.6 जीसीसी 4.0.1 है):
qsort((void **) lineptr, 0, nlines-1,
(int (*)(void*, void*))(numeric ? numcmp : strcmp));
कार्यक्रम segfaulting बिना निष्पादित करता है, लेकिन मैं हर चेतावनी smoosh चाहते मैं, या कम से कम उनके कारणों को समझ सकता हूं।
int numcmp(char *, char *);
लेकिन मैनपेज के अनुसार, stcmp इस हस्ताक्षर है:
int strcmp(const char *s1, const char *s2);
है क्योंकि थोड़ी भिन्न विधि हस्ताक्षर के सरल चेतावनी
numcmp के लिए समारोह घोषणा की तरह दिखता है? चेतावनी को अनदेखा करने के क्या परिणाम हैं?
एडी ने एक डुप्ली के बारे में बताया। मैंने अपना खुद का सवाल बंद करने के लिए वोट दिया लेकिन मैंने सोचा कि एक तरीका होगा कि मालिक इसे संक्षेप में बंद कर सकता है। – Dana
दाना, जांचें [के एंड आर उदाहरण संकलित करने में समस्या] (http://stackoverflow.com/questions/616906/problem-compiling-kr-example/616929) और आपको शायद आपके प्रश्न का उत्तर मिल जाएगा। अगर आप नहीं करते हैं तो हमें बताएं। – Eddie