(NB:純粋なC/Arduino)。C前方宣言
私はたくさんのリンクを見つけましたが、誰も私に答えませんでした。
ファイル「Effects.h
」と「Keyboard.h
」があります。
「Keyboard.h
」には「Effects.h
」を含めるとが必要です。
extern fnKeyPress effectDrops();
extern fnKeyPress effectLineRotate();
extern fnKeyPress effectRainbowCycle();
彼らはすべてこれら2つのパラメータを取る関数へのポインタを返す必要があります:const KeyWithColor *, const struct KeyConfiguration *
だから、「Effects.h
は、」私は、これらの3つの機能を作った「Effects.h
」で「Keyboard.h
」
を含めることはできません
だから私はこれをやろうとしている:
typedef void (*fnKeyPress)(const KeyWithColor *, const struct KeyConfiguration *);
extern fnKeyPress effectDrops();
extern fnKeyPress effectLineRotate();
extern fnKeyPress effectRainbowCycle();
しかし、ある動作しません、それは言うので、 s:
Effects.h:32: error: 'KeyWithColor' does not name a type
typedef void (*fnKeyPress)(const KeyWithColor *, const struct KeyConfiguration *);
回避策を教えてください。
型も宣言する必要があります。 –
@JoachimPileborg "アイデア"ありがとうございますが、もっと具体的なものが必要です...私はあなたに答えて私に例を挙げてもらえますか?ありがとうございました –
適切なインクルードガードを追加すると、任意のファイルに任意の順序で他のヘッダーファイルを含めることができます。 –