gcc编译器选项将int arg转换为double?

时间:2012-10-25 17:00:01

标签: c gcc casting

我假设为双参数传递的int args将转换为double。例如

我打电话给:     make_line(root," hi",5,5,50,50);

在:

GooCanvasItem * make_line(GooCanvasItem * parent, char * name, gdouble x1, gdouble y1, gdouble x2, gdouble y2)
{
    printf("from make line: %f %f %f %f\n", x1, y1, x2, y2);
    //...
}

printf产生:

from make line: 0.000000 0.000000 0.000000 0.000000

当我用

打电话时
make_line(root, "hi", 5.0,5.0,50.0,50.0);

它给出了正确的输出。

gdouble更改为double似乎无法解决问题。

1 个答案:

答案 0 :(得分:3)

a(5)不会转换为0

我相信您在%d而不是printf中使用%f来打印双倍值。编译代码时打开编译器警告。

使用gcc的-Wformat选项。