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

标签 c pointers constants 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 时,我只会收到错误(否则,我只是得到“错误完成”,没有任何错误消息)

最佳答案

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/

相关文章:

c - 在可变大小的井字棋网格中检查获胜的最有效方法?

c++ - "No-Const Pointer to Const "调用函数

objective-c - 更优雅的替代 (*(uint16_t*)[[NSData] bytes])?

android - 需要关于使用 const 参数覆盖函数的警告

c - C 程序中的共享常量

c++ - 将成员函数从 C++ CLI 传递到 native C 回调

c - 在 C 循环中将节点插入 BST

c++ - 常量和非常量版本和继承

c - 预处理器指令 define 和 ifdef 没有像我想象的那样工作?

C++指针引用方法调用