Coerción de argumentos en C/C++

La coerción de argumentos es una característica de los prototipos de funciones mediante la cual el compilador convierte implícitamente el tipo de datos de los argumentos pasados ​​durante la llamada a la función para que coincida con el tipo de datos en la definición de la función.

Sigue las reglas de promoción de argumentos. Por lo tanto, un tipo de datos inferior puede convertirse en un tipo de datos superior, pero viceversa no es cierto. Esto se debe a que cuando un tipo de datos superior se convierte en un tipo de datos inferior, puede provocar la pérdida o el truncamiento de los datos.

La jerarquía de promoción para tipos de datos fundamentales en C++ es:

Ejemplo: tome como ejemplo el código que se proporciona a continuación que consiste en una función de adición que espera argumentos dobles. Pero incluso cuando se pasan argumentos enteros, funciona correctamente. En caso de que se pasen argumentos dobles largos, el código dará un error.

#include <iostream>
using namespace std;
  
double add(double a, double b)
{
    return a + b;
}
  
int main()
{
    // Passing double arguments, as expected
    cout << "Sum = " << add(2.4, 8.5) << endl;
  
    // Passing int arguments, when double is expected
    // This will lead to Argument Coercion
    cout << "Sum = " << add(16, 18) << endl;
  
    return 0;
}

Publicación traducida automáticamente

Artículo escrito por ManasiKirloskar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *