如何调用使用const和*的过程?

时间:2015-09-22 05:56:26

标签: c pointers const mikroc

我正在尝试实现一个关于绘制圆圈的函数

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时才会收到错误(否则,我只是“完成了错误”而没有任何错误消息)

1 个答案:

答案 0 :(得分:2)

void drawCircle(const circleType * circle)

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

所以假设

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

...

circleType circle = {...};

你想要像这样调用这个函数

drawCircle(&circle);

使用地址操作员&获取circle的地址。