我正在尝试实现一个关于绘制圆圈的函数
void drawCircle(const circleType * circle)
上面显示了它在头文件中的定义方式。我正试图在一个程序中使用它:
drawCircle(circle);
圆圈是3个变量的结构(circleType),每个变量在调用过程之前定义。我做错了什么吗?我得到的错误是:
320 Cannot assign 'circle' to 'circle'
307 Illegal typecast 'can not convert to pointer' ''
IDE是用于AVR的mikroC PRO(v4.60.0.0)。我不确定包含的编译器。还应该提到我只在优化设置为0时才会收到错误(否则,我只是“完成了错误”而没有任何错误消息)
答案 0 :(得分:2)
void drawCircle(const circleType * circle)
需要指向circleType
类型变量的地址的指针。
所以假设
typedef struct
{
int xc;
int yc;
int rc;
} circleType;
...
circleType circle = {...};
你想要像这样调用这个函数
drawCircle(&circle);
使用地址操作员&
获取circle
的地址。