在C语言中,调用一个不带原型声明的函数时:
调用者会对 每个参数执行“默认实际参数 提升(default argument promotions)”。
同时,对可变长参数列表 超出最后一个有 类型声明的形式参数之后的 每一个实际参数,也将执行上述提升工作。
提升工作如下:
——float类型的实际参数将提升到double
——char、short和相应的signed、unsigned类型的实际参数提升到int
——如果int不能存储原值,则提升到unsigned int
然后,调用者将 提升后的参数 传递给被调用者。
调用者会对 每个参数执行“默认实际参数 提升(default argument promotions)”。
同时,对可变长参数列表 超出最后一个有 类型声明的形式参数之后的 每一个实际参数,也将执行上述提升工作。
提升工作如下:
——float类型的实际参数将提升到double
——char、short和相应的signed、unsigned类型的实际参数提升到int
——如果int不能存储原值,则提升到unsigned int
然后,调用者将 提升后的参数 传递给被调用者。