我正在尝试实现一个画圆的功能
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 时,我只会收到错误(否则,我只是得到“错误完成”,没有任何错误消息)
最佳答案
void drawCircle(const circleType * circle)
需要一个指向circleType
类型变量地址的指针。
所以假设
typedef struct
{
int xc;
int yc;
int rc;
} circleType;
...
circleType circle = {...};
你想像这样调用函数
drawCircle(&circle);
使用地址运算符&
来获取circle
的地址。
关于c - 如何调用使用const和*的过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32709377/