Få motstridende typer for funksjon i C, hvorfor?

Få motstridende typer for funksjon i C, hvorfor?
Hvert programmeringsspråk har noen forhåndsdefinerte datatyper som definerer den typen data som kan gis i variabler. I C inkluderer for eksempel datatyper heltall, flottører, dobler, tegn og pekere. Variabler, matriser og funksjoner kan alle defineres ved å bruke disse datatypene, blant annet. Derfor representerer en funksjons datatype hvilken type data som funksjonen vil returnere.

På C -programmeringsspråk, et vanlig feil Melding som utviklere kommer over er “Motstridende typer for funksjon” feil. Dette feil Meldingen oppstår når kompilatoren oppdager to forskjellige typer data knyttet til en enkelt funksjon. Denne artikkelen diskuterer hva som forårsaker dette feil og hvordan du kan ta det opp.

"Motstridende typer for funksjon" -feil

Når vi erklærer en funksjon i C, må den samsvare med funksjonsdefinisjonen. For eksempel, hvis vi definerer en funksjon for å returnere et heltall, må erklæringen også definere funksjonen for å returnere et heltall. Hvis de definisjonstypene og erklæringen ikke stemmer overens, samsvarer “Motstridende typer for funksjon” feil blir kastet av C -kompilatoren.

Årsaker til at denne feilen oppstår

Det er flere grunner til at Motstridende typer for funksjoner kan oppstå.

1: Uoverensstemmede datatyper

Den første grunnen er at datatyper kan være uoverensstemmende mellom funksjonssamtalen og funksjonsdefinisjonen. For eksempel, hvis vi definerer en funksjon for å returnere en flottør og deretter prøve å ringe en funksjon med forventning om et heltall, vil kompilatoren oppdage en konflikt i typer.

2: Funksjonsprototype definert feil

En annen grunn til konflikten er at funksjonsprototypen ikke er definert eller erklært riktig. Typene parametere en funksjon mottar og de typer verdier den returnerer er erklært i en funksjonsprototype. Hvis prototypen ikke samsvarer med definisjonen, feil ville bli kastet.

3: Skrivfeil

Til slutt "Motstridende typer for funksjon" -feil Melding kan også oppstå på grunn av en enkel skrivefeil, for eksempel et feilstavet funksjonsnavn, en manglende semikolon eller manglende lukkende parentes. Derfor er det viktig å sjekke for syntaksfeil når vi får dette feil beskjed.

Her er prøvekoden som genererer “Motstridende type for funksjon” Feil i c.

#inkludere
float gjennomsnitt (int, int);
int main ()

printf ("Gjennomsnittet er: %f \ n", gjennomsnitt (27.32,14.53));
return 0;

Float Average (Float X, Float Y)

return ((x+y)/2);

I koden ovenfor er typen argumenter i funksjonserklæringen 'Gjennomsnitt ()' int, mens vi på tidspunktet for å definere funksjonsgjennomsnittet, bruker datatypene FLOAT for funksjonsargumenter. Ettersom typer funksjonsparametere er forskjellige for å erklære og definere den samme funksjonen, får vi feil "Motstridende typer for" gjennomsnitt "".

Produksjon

Korrigert kode

For å rette opp feil, Vi må sjekke at argumenttypene ved å erklære og definere funksjonene er de samme.

#inkludere
Float Average (Float, Float);
int main ()

printf ("Gjennomsnittet er: %f \ n", gjennomsnitt (27.32,14.53));
return 0;

Float Average (Float X, Float Y)

return ((x+y)/2);

I koden ovenfor bruker vi de samme typene parametere for begge, definisjonen og erklæringen om funksjonen. Derfor gir det oss utgangen, jeg.e., gjennomsnittet av begge verdiene.

Produksjon

Konklusjon

“Motstridende typer for funksjon” Feilmelding i C vises når det er et misforhold mellom funksjonsprototypen og dens definisjon, så vel som når typen verdi som returneres av funksjonen ikke er konsistent mellom de to. For å løse dette feil, Vi må sørge for at både funksjonsprototypen og definisjonen. Vi må også se etter enkel syntaks feil Når vi møter dette feil melding for å unngå unødvendig frustrasjon.