当前位置: 代码迷 >> VC >> 可变参数函数的参数类型的有关问题
  详细解决方案

可变参数函数的参数类型的有关问题

热度:8546   发布时间:2013-02-25 00:00:00.0
可变参数函数的参数类型的问题
比如printf("%lf",1)这一句

我们知道,先在获取第一个参数的指针,然后由参数一的指针算得参数二的指针。

但是上述这种情况下,如何知道1到底是int还是double类型的呢?C++似乎默认把1当成int了,这样一来虽然参数二的指针是正确的,但由该指针获取的参数值肯定是错误的(int为2字节,double是8字节)

但是奇怪的是,上述语句在printf函数上是正常的。求解如何限定参数的类型,或者printf是怎么取得正确的数据的

------解决方案--------------------------------------------------------
printf("%lf",1)
这种用法是错误的.
如果显示了正确结果,那也只是"碰巧".


必须自己保证后面参数的类型和前面给出的格式一致.
就是因为printf不知道参数类型,才让你提供前面那个字符串参数的.
  相关解决方案