का उपयोग कर सी प्रोग्राम संकलित करते समय विरोधाभासी प्रकार त्रुटि, मैंने निम्नलिखित प्रोग्राम को gcc के साथ संकलित करने का प्रयास किया।जीसीसी
0 #include <stdio.h>
1
2 main()
3
4 {
5 char my_string[] = "hello there";
6
7 my_print (my_string);
8 my_print2 (my_string);
9}
10
11 void my_print (char *string)
12 {
13 printf ("The string is %s\n", string);
14 }
15
16 void my_print2 (char *string)
17 {
18 char *string2;
19 int size, i;
20
21 size = strlen (string);
22 string2 = (char *) malloc (size + 1);
23
24 for (i = 0; i < size; i++)
25 string2[size - i] = string[i];
26
27 string2[size+1] = '\0';
28 printf ("The string printed backward is %s\n", string2);
29 }
हालांकि, यह विफल रहता है और संकलक निम्न त्रुटि लॉग पैदा करता है:
- greeting.c: 11: त्रुटि: 'my_print' के लिए प्रकार परस्पर विरोधी
- greeting.c: 7: त्रुटि: 'my_print' के पिछले निहित घोषणा यहाँ था
- greeting.c: 16: त्रुटि: 8:: erroro: 'my_print2'
- greeting.c के लिए प्रकार परस्पर विरोधी 'my_print2' के पिछले निहित घोषणा था वहाँ
और यदि मैं मुख्य कार्य से पहले my_print और my_print2 फ़ंक्शंस को स्थानांतरित करता हूं, तो सब कुछ ठीक हो जाता है। तो क्या कोई यह समझा सकता है कि समस्या क्यों होती है? धन्यवाद!
फ़ंक्शन घोषणा – Laz