首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-10-20 
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楼所说
尽量避免依靠编译器进行隐式类型转换
能够显化的,就写的清晰些吧

热点排行