Obtener tipos conflictivos para la función en C, por qué?

Obtener tipos conflictivos para la función en C, por qué?
Cada lenguaje de programación tiene algunos tipos de datos predefinidos que definen el tipo de datos que se pueden proporcionar en variables. En C, por ejemplo, los tipos de datos incluyen enteros, flotadores, dobles, caracteres y punteros. Las variables, las matrices y las funciones pueden definirse utilizando estos tipos de datos, entre otras cosas. Por lo tanto, el tipo de datos de una función representa el tipo de datos que la función devolvería.

En el lenguaje de programación C, un común error El mensaje que los desarrolladores encuentran es el "Tipos conflictivos para la función" error. Este error El mensaje surge cuando el compilador detecta dos tipos diferentes de datos asociados con una sola función. Este artículo discute qué causa esto error y cómo abordarlo.

Error de "tipos conflictivos para la función"

Cuando declaramos una función en C, debe coincidir con el tipo de definición de función. Por ejemplo, si definimos una función para devolver un entero, la declaración también debe definir la función para devolver un entero. Si los tipos de definición y la declaración no coinciden, el "Tipos conflictivos para la función" error es arrojado por el compilador C.

Razones por las cuales se produce este error

Hay varias razones para ello Tipos contradictorios para funciones puede ocurrir.

1: Tipos de datos no coincidentes

La primera razón es que los tipos de datos pueden no coincidir entre la llamada de función y la definición de función. Por ejemplo, si definimos una función para devolver un flotador y luego intentamos llamar a una función con la expectativa de un entero, el compilador detectará un conflicto en los tipos.

2: Prototipo de función definido erróneamente

Otra razón para el conflicto es que el prototipo de función no está definido o declarado correctamente. Los tipos de parámetros que recibe una función y los tipos de valores que devuelve se declaran en un prototipo de función. Si el prototipo no coincide con la definición, el error sería arrojado.

3: Error de escritura

Finalmente, el Error de "tipos conflictivos para la función" El mensaje también puede ocurrir debido a un simple error de tipificación, como un nombre de la función mal escrito, una semicolon faltante o un paréntesis de cierre faltante. Por lo tanto, es importante verificar los errores de sintaxis cuando obtenemos esto error mensaje.

Aquí está el código de muestra que genera el "Tipo conflictivo para la función" Error en C.

#incluir
promedio de flotación (int, int);
int main ()

printf ("El promedio es: %f \ n", promedio (27.32,14.53));
regresar 0;

promedio de flotación (flotante x, flotante y)

return ((x+y)/2);

En el código anterior, el tipo de argumentos en la declaración de función 'promedio ()' es int, mientras que en el momento de definir el promedio de la función, estamos utilizando los tipos de datos flotando para los argumentos de la función. Como los tipos de parámetros de función son diferentes para declarar y definir la misma función, obtenemos el error "Tipos conflictivos para 'promedio'".

Producción

Código corregido

Para corregir el error, Necesitamos verificar que los tipos de argumentos para declarar y definir las funciones sean los mismos.

#incluir
promedio de flotación (flotador, flotante);
int main ()

printf ("El promedio es: %f \ n", promedio (27.32,14.53));
regresar 0;

promedio de flotación (flotante x, flotante y)

return ((x+y)/2);

En el código anterior, estamos utilizando los mismos tipos de parámetros para ambos, la definición y la declaración de la función. Por lo tanto, nos da la salida, yo.mi., el promedio de ambos valores.

Producción

Conclusión

"Tipos conflictivos para la función" El mensaje de error en C aparece cuando hay una falta de coincidencia entre el prototipo de función y su definición, así como cuando el tipo de valor devuelto por la función no es consistente entre los dos. Para resolver esto error, Debemos asegurarnos de que tanto el prototipo de la función como su definición sean consistentes en términos del número, el orden y los tipos de argumentos aceptados y el tipo de valor devuelto. También debemos verificar la sintaxis simple errores Cuando encontramos esto error mensaje para evitar la frustración innecesaria.