Принуждение аргументов в C / C ++

Опубликовано: 30 Декабря, 2021

Приведение аргументов - это функция прототипов функций, с помощью которой компилятор неявно преобразует тип данных аргументов, переданных во время вызова функции, в соответствие с типом данных в определении функции.

Он следует правилам продвижения аргументов. Следовательно, более низкий тип данных может быть преобразован в более высокий тип данных, но наоборот, это неверно. Это связано с тем, что преобразование более высокого типа данных в более низкое может привести к потере или усечению данных.

Иерархия продвижения для основных типов данных в 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;
}
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++ C