kullanarak c programı derlenirken çelişen türlerde hata Aşağıdaki programı gcc ile derlemeye çalıştım.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 }
Ancak, başarısız olur ve derleyici aşağıdaki hata günlük üretir:
- greeting.c: 11: hatası: 'my_print' için türleri çakışan
- greeting.c: 7: hatası: hata:: 8:: erroro: 'my_print2'
- greeting.c için türlerini çelişkili 16: greeting.c 'my_print' önceki örtük bildirim buradaydı 'my_print2' önceki örtük bildirim orada
Ve my_print ve my_print2 işlevlerini ana işlevden önce taşırsam her şey iyi gider. Peki, sorun neden gerçekleştiğini açıklayabilir mi? Teşekkürler!
işlev bildirimi yok – Laz