0 c c++ visual-studio-2008 visual-c++ c++11
当我使用变量参数时,它适用于int和double,但是当涉及到float时,会发生错误.
这是代码.
void vaParamTest(int a, ...)
{
va_list ap;
va_start(ap, a);
for (int i = 0; i < a; i++)
printf("%f\t", va_arg(ap, float));
putchar('\n');
va_end(ap);
}
Run Code Online (Sandbox Code Playgroud)
我传递这样的参数.
vaParamTest(3, 3.5f, 8.3f, 5.1f);
Run Code Online (Sandbox Code Playgroud)
Ker*_* SB 10
作为可变参数函数参数传递的变量是默认提升的,这使得所有floats成为doubles.你永远不会有一个float参数(就像你永远不会有一个char参数).在printf,%f总是意味着double.
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |