Ottenere tipi contrastanti per la funzione in C, perché?

Ottenere tipi contrastanti per la funzione in C, perché?
Ogni linguaggio di programmazione ha alcuni tipi di dati predefiniti che definiscono il tipo di dati che possono essere forniti in variabili. In C, ad esempio, i tipi di dati includono numeri interi, galleggianti, doppi, caratteri e puntatori. Variabili, array e funzioni possono essere definiti tutti usando questi tipi di dati, tra le altre cose. Pertanto, il tipo di dati di una funzione rappresenta il tipo di dati che la funzione restituirebbe.

Nel linguaggio di programmazione C, un comune errore messaggio che gli sviluppatori incontrano è il "Tipi contrastanti per la funzione" errore. Questo errore Il messaggio sorge quando il compilatore rileva due diversi tipi di dati associati a una singola funzione. Questo articolo discute cosa causa questo errore e come affrontarlo.

Errore "tipi contrastanti per funzione"

Quando dichiariamo una funzione in C, deve corrispondere al tipo di definizione della funzione. Ad esempio, se definiamo una funzione per restituire un numero intero, la dichiarazione deve anche definire la funzione per restituire un numero intero. Se i tipi di definizione e la dichiarazione non corrispondono, il "Tipi contrastanti per la funzione" errore viene lanciato dal compilatore C.

Motivi per cui si verifica questo errore

Ci sono diversi motivi per cui Tipi contrastanti per le funzioni può accadere.

1: tipi di dati non corrispondenti

Il primo motivo è che i tipi di dati possono essere non corrispondenti tra la chiamata della funzione e la definizione della funzione. Ad esempio, se definiamo una funzione per restituire un galleggiante e quindi proviamo a chiamare una funzione con l'aspettativa di un numero intero, il compilatore rileverà un conflitto nei tipi.

2: prototipo di funzione definito erroneamente

Un altro motivo del conflitto è che il prototipo di funzione non è definito o dichiarato correttamente. I tipi di parametri che una funzione riceve e i tipi di valori che restituisce sono dichiarati in un prototipo di funzione. Se il prototipo non corrisponde alla definizione, il errore verrebbe lanciato.

3: errore di digitazione

Finalmente il Errore "tipi contrastanti per funzione" Il messaggio può anche verificarsi a causa di un semplice errore di digitazione, come un nome di funzione errata, un punto e virgola o una parentesi di chiusura mancante. Pertanto, è importante verificare gli errori di sintassi quando otteniamo questo errore Messaggio.

Ecco il codice di esempio che genera il "Tipo contrastante per la funzione" Errore in c.

#includere
Float Media (int, int);
int main ()

printf ("La media è: %f \ n", media (27.32,14.53));
restituzione 0;

Float Media (Float X, Float y)

restituire ((x+y)/2);

Nel codice di cui sopra, il tipo di argomenti nella Dichiarazione della funzione "media ()" è int, mentre al momento della definizione della media della funzione, stiamo usando i tipi di dati fluttuanti per gli argomenti della funzione. Poiché i tipi di parametri della funzione sono diversi per dichiarare e definire la stessa funzione, otteniamo il errore "Tipi contrastanti per" media "".

Produzione

Codice corretto

Per correggere il errore, Dobbiamo verificare che i tipi di argomenti nel dichiarare e definire le funzioni siano gli stessi.

#includere
Float Media (galleggiante, galleggiante);
int main ()

printf ("La media è: %f \ n", media (27.32,14.53));
restituzione 0;

Float Media (Float X, Float y)

restituire ((x+y)/2);

Nel codice sopra, stiamo usando gli stessi tipi di parametri per entrambi, la definizione e la dichiarazione della funzione. Quindi ci dà l'output, i.e., la media di entrambi i valori.

Produzione

Conclusione

"Tipi contrastanti per la funzione" Il messaggio di errore in C appare quando esiste una mancata corrispondenza tra il prototipo della funzione e la sua definizione, nonché quando il tipo di valore restituito dalla funzione non è coerente tra i due. Per risolvere questo errore, Dobbiamo garantire che sia il prototipo di funzione che la sua definizione siano coerenti in termini di numero, ordine e tipi di argomenti accettati e del tipo di valore restituito. Dobbiamo anche verificare la sintassi semplice errori Quando lo incontriamo errore Messaggio per evitare inutili frustrazione.