Uzyskanie „sprzecznych typów funkcji” w C, dlaczego?

Uzyskanie „sprzecznych typów funkcji” w C, dlaczego?
Każdy język programowania ma niektóre predefiniowane typy danych, które określają rodzaj danych, które można dostarczyć w zmiennych. Na przykład w C, typy danych obejmują liczby całkowite, pływaki, podwójne, znaki i wskaźniki. Zmienne, tablice i funkcje mogą być zdefiniowane przy użyciu tych typów danych, między innymi. Dlatego typ danych funkcji reprezentuje rodzaj danych, które zwróci funkcja.

W języku programowania C wspólny błąd Wiadomość, którą napotykają programiści „Sprzeczne typy funkcji” błąd. Ten błąd Wiadomość powstaje, gdy kompilator wykrywa dwa różne typy danych powiązanych z jedną funkcją. W tym artykule omówiono to, co to powoduje błąd i jak to się zająć.

Błąd „sprzecznych typów dla funkcji”

Kiedy deklarujemy funkcję w C, musi ona pasować do rodzaju definicji funkcji. Na przykład, jeśli zdefiniujemy funkcję, aby zwrócić liczbę całkowitą, deklaracja musi również zdefiniować funkcję, aby zwrócić liczbę całkowitą. Jeśli rodzaje definicji i deklaracja nie pasują, „Sprzeczne typy funkcji” błąd jest rzucany przez kompilatora C.

Powody, dla których występuje ten błąd

Istnieje kilka powodów sprzeczne typy funkcji może wystąpić.

1: niedopasowane typy danych

Pierwszym powodem jest to, że typy danych mogą być niedopasowane między wywołaniem funkcji a definicją funkcji. Na przykład, jeśli zdefiniujemy funkcję, aby zwrócić pływak, a następnie spróbujemy wywołać funkcję z oczekiwaniem liczby całkowitej, kompilator wykryje konflikt w typach.

2: Prototyp funkcji zdefiniowany błędnie

Innym powodem konfliktu jest to, że prototyp funkcji nie jest zdefiniowany ani prawidłowo zadeklarowany. Rodzaje parametrów, które odbiera funkcja, a typy zwracanych wartości są deklarowane w prototypie funkcji. Jeśli prototyp nie pasuje do definicji, błąd zostałby rzucony.

3: Błąd pisania

Wreszcie Błąd „sprzecznych typów dla funkcji” Komunikat może również wystąpić z powodu prostego błędu pisania, takiego jak błędna nazwa funkcji, brakujący półkolis lub brakujący nawias zamykający. Dlatego ważne jest, aby sprawdzić błędy składniowe, gdy to otrzymamy błąd wiadomość.

Oto przykładowy kod, który generuje „Konfliktowy typ funkcji” Błąd w c.

#włączać
float średnia (int, int);
int main ()

printf („średnia to: %f \ n”, średnia (27.32,14.53));
powrót 0;

średnia float (float x, float y)

return ((x+y)/2);

W powyższym kodzie rodzaj argumentów w deklaracji funkcji „średnia ()” jest INT, podczas gdy w momencie zdefiniowania średniej funkcji używamy typów danych FLUE dla argumentów funkcji. Ponieważ typy parametrów funkcji są różne do deklarowania i definiowania tej samej funkcji, otrzymujemy błąd „Sprzeczne typy dla„ średniej ””.

Wyjście

Poprawiony kod

Aby poprawić błąd, Musimy sprawdzić, czy typy argumentów w deklarowaniu i definiowaniu funkcji są takie same.

#włączać
float średnia (float, float);
int main ()

printf („średnia to: %f \ n”, średnia (27.32,14.53));
powrót 0;

średnia float (float x, float y)

return ((x+y)/2);

W powyższym kodzie używamy tych samych rodzajów parametrów zarówno dla definicji, jak i deklaracji funkcji. Stąd daje nam wyjście, i.mi., Średnia obu wartości.

Wyjście

Wniosek

„Sprzeczne typy funkcji” Komunikat o błędzie w C pojawia się, gdy istnieje niedopasowanie między prototypem funkcji a jej definicją, a także gdy rodzaj wartości zwróconej przez funkcję nie jest spójny między nimi. Aby to rozwiązać błąd, Musimy upewnić się, że zarówno prototyp funkcji, jak i jej definicja są spójne pod względem liczby, zamówienia i rodzajów zaakceptowanych argumentów oraz rodzaju zwróconej wartości. Musimy również sprawdzić prostą składnię błędy Kiedy to napotykamy błąd Wiadomość, aby uniknąć niepotrzebnej frustracji.