Принуждение аргументов в C / C ++
Приведение аргументов - это функция прототипов функций, с помощью которой компилятор неявно преобразует тип данных аргументов, переданных во время вызова функции, в соответствие с типом данных в определении функции.
Он следует правилам продвижения аргументов. Следовательно, более низкий тип данных может быть преобразован в более высокий тип данных, но наоборот, это неверно. Это связано с тем, что преобразование более высокого типа данных в более низкое может привести к потере или усечению данных.
Иерархия продвижения для основных типов данных в C ++:
Пример: возьмем для примера приведенный ниже код, состоящий из функции добавления, которая ожидает двойных аргументов. Но даже когда передаются целочисленные аргументы, он работает правильно. В случае передачи длинных двойных аргументов код выдаст ошибку.
#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; } |