我假设为双参数传递的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
似乎无法解决问题。
答案 0 :(得分:3)
a
(5)不会转换为0
。
我相信您在%d
而不是printf
中使用%f
来打印双倍值。编译代码时打开编译器警告。
使用gcc的-Wformat
选项。