ที่นี่เราจะเห็นเกี่ยวกับการบีบบังคับอาร์กิวเมนต์ใน C หรือ C ++ Argument Coercion เป็นเทคนิคหนึ่งที่คอมไพเลอร์สามารถแปลงอาร์กิวเมนต์โดยปริยายจากประเภทหนึ่งไปเป็นอีกประเภทหนึ่งได้ เป็นไปตามกฎการส่งเสริมการโต้แย้ง หากอาร์กิวเมนต์หนึ่งเป็นประเภทข้อมูลที่ต่ำกว่า ก็สามารถแปลงเป็นประเภทข้อมูลที่สูงกว่าได้ แต่การกลับกันไม่เป็นความจริง สาเหตุคือหากมีการแปลงประเภทข้อมูลที่สูงกว่าเป็นประเภทข้อมูลที่ต่ำกว่า ข้อมูลบางส่วนอาจสูญหาย
ให้เราดูพีระมิดหนึ่งอันที่แสดงว่าการแปลงโดยปริยายเกิดขึ้นได้อย่างไร
ตัวอย่าง
#include<iostream> using namespace std; double myAdd(double a, double b){ return a+b; } main() { cout << "double data add: " << myAdd(5.3, 6.9) << endl; cout << "integer data add: " << myAdd(6, 5) << endl; }
ผลลัพธ์
double data add: 12.2 integer data add: 11