float类型参数进堆栈后变为double,要是按float
c语言吧
全部回复
仅看楼主
level 3
float类型参数进堆栈后变为double,要是按float类型取出不就错了吗 求大佬 我不是科班的 没学过编译 谢谢了
2018年03月22日 11点03分 1
level 3
别沉 别沉
2018年03月22日 11点03分 2
level 3
别沉啊
2018年03月22日 12点03分 4
level 15
这句话出自哪里。。
2018年03月22日 12点03分 5
c primer plus float当作参数传递 自动变成double
2018年03月22日 12点03分
@啊啊啊😂😳 这是断章取义吧,你确定这不是在说printf的参数传递?
2018年03月22日 13点03分
不是吧
2018年03月22日 13点03分
level 3
2018年03月22日 13点03分 6
level 15
只有在参数没写明,编译器无从得知参数信息时,才会做出这种事情,如果声明写完整的话此情况不会发生(可变参数除外)
2018年03月22日 13点03分 7
我还真的没写 为什么会这样呢
2018年03月22日 14点03分
难道因为表达式中自动转换的问题
2018年03月22日 14点03分
level 15
专门翻了cpp。。
lz
断章取义了,请注意「函数原型会覆盖自动升级」
2018年03月22日 13点03分 8
那正确的理解是什么呢 搞得我有点糊涂
2018年03月22日 14点03分
@啊啊啊😂😳 假定lz学习了函数知识,是指编译器在调用以C89前的函数原型声明的函数时,这些类型会进行自动转换(因为编译器不知道参数类型)
2018年03月22日 14点03分
回复 三枝💕葉留佳 :而且不错,正如你想象的那样,按float取出会出问题
2018年03月22日 14点03分
原来是这样啊 那书中的参数传递float升级怎么理解呢
2018年03月22日 14点03分
1