-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 に答える