float类型参数进堆栈后变为double,要是按float类型取出怎么处理

float类型参数进堆栈后变为double,要是按float类型取出怎么办?float类型参数进堆栈后变为double,要是按flo

float类型参数进堆栈后变为double,要是按float类型取出怎么办?
float类型参数进堆栈后变为double,要是按float类型取出怎么办?

例如:float   imax(float   a,   float   b)
            {
                    return   a   >   b   ?   a   :   b;
            }

            假如当我把   4.5   和   5.5   作为实参传过去,那么将会把这两个数据以double类型(64位)存储在堆栈中,共128位。
            但是当被调函数执行时会以float类型(32位)进行取出,那不就出错了吗?
            求解释!!!

[解决办法]
囧!编译器既然知道怎么float正确转换到double,难道会不知道怎么由double再转回float么。
[解决办法]
楼主考虑的问题,是编译层面的问题
楼主的确对于类型转换有比较深刻的思考
建议楼主多动手写点测试代码
来验证自己的想法
有些东西编译器是完成了的
而有些东西编译器没有固定的行为

所以,正如4楼所说
尽量避免依靠编译器进行隐式类型转换
能够显化的,就写的清晰些吧