c语言库函数调用时,是不是把实参强制转换成要求的类型?

来源:百度知道 编辑:UC知道 时间:2024/05/24 08:34:31
比如:
pow(x,y)要求x,y和返回类型都是double型的,但调用时pow( a, b)(a,b都是int型的)也不提示错误,而且对结果似乎没有影响
line(x1,y1,x2,y2)要求x1,y1...都是int型的,但我调用时,x1,x2,y1,y2都是double型的,也不提示错误,而且还能正确画图
学的不精,希望高手能解答下,xiexie
附:我用Turbo C

pow(x,y)要求x,y和返回类型都是double型的,但调用时pow( a, b)(a,b都是int型的)也不提示错误,而且对结果似乎没有影响
这个没问题,自动转型,低精度转高精度。
---------------------------------------
line(x1,y1,x2,y2)要求x1,y1...都是int型的,但我调用时,x1,x2,y1,y2都是double型的,也不提示错误,而且还能正确画图
这个我觉得不对吧,是不是你记错了,高转低会丢失精度的。要不就是有两个同名的库函数,只是要求的参数不一样

这是隐含调用,编译器帮你做了转换,就像你能把一个char赋值给一个int一样
int a;
char b='c';
a=b;//OK!