120Afei 发表于 2021-4-1 18:41:10

调用函数时参数的数据类型转换

本帖最后由 120Afei 于 2021-4-1 18:44 编辑

https://z3.ax1x.com/2021/04/01/cVy3y6.png


若声明函数原型 void test(short a,float b); 则 test 函数中 b 的值正常(为10.100000)。

问题:
调用 test 函数时的实参 b 为 float型,函数定义中形参 b 也是 float 型,请问造成这种问题的原因是什么?
还是说实参 b 的值是 double 型 ,赋值给形参时发生了类型转换?

wp231957 发表于 2021-4-1 19:01:56

上代码,没看明白你想问什么

120Afei 发表于 2021-4-1 19:21:18

wp231957 发表于 2021-4-1 19:01
上代码,没看明白你想问什么

截图里面有代码呀,就是调用 test 函数并给其传值,然后在这个函数里面打印出来这个值。

120Afei 发表于 2021-4-1 20:18:55

{:10_249:}{:10_249:} 没人帮俺看看吗

李京 发表于 2021-4-1 21:38:58

本帖最后由 李京 于 2021-4-1 21:41 编辑

120Afei 发表于 2021-4-1 20:18
没人帮俺看看吗

我在vs上面把你的代码写进去了,输出的结果没有错
你用的什么软件

120Afei 发表于 2021-4-1 22:01:23

李京 发表于 2021-4-1 21:38
我在vs上面把你的代码写进去了,输出的结果没有错
你用的什么软件

你这个声明了函数原型,即 void test(short,float); 当然没问题,我的问题是不声明这个函数原型为什么会值出现异常。

wp231957 发表于 2021-4-2 07:01:58

120Afei 发表于 2021-4-1 20:18
没人帮俺看看吗

为什么让你发代码呢?
你只发图片,难道让别人再重敲一下代码吗,谁有那闲情

李京 发表于 2021-4-2 11:05:39

120Afei 发表于 2021-4-1 22:01
你这个声明了函数原型,即 void test(short,float); 当然没问题,我的问题是不声明这个函数原型为什么会 ...

不声明能通过?
你的函数定义还在mian函数下面,你是怎么通过编译的???
页: [1]
查看完整版本: 调用函数时参数的数据类型转换