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

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

2012-01-31 
可变参数函数的参数类型的问题比如printf(%lf,1)这一句我们知道,先在获取第一个参数的指针,然后由参数一

可变参数函数的参数类型的问题
比如printf("%lf",1)这一句

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

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

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

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


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

热点排行