-2

我正在尝试实现一个关于画圆的功能

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 (v4.60.0.0) 的 mikroC PRO。我不确定包含的编译器。还应该提到,当优化设置为 0 时,我只会收到错误(否则,我只会得到“错误完成”而没有任何错误消息)

4

1 回答 1

2
void drawCircle(const circleType * circle)

需要一个指向circleType类型变量地址的指针。

所以假设

typedef struct 
{  
  int xc; 
  int yc; 
  int rc; 
} circleType;

...

circleType circle = {...};

你想这样调用函数

drawCircle(&circle);

使用 address-of 运算符&来获取circle' 的地址。

于 2015-09-22T06:18:15.200 回答