スクラッチ&スクラップ

簡単なプログラミングや電子工作など。しょうもない工作の記録。

「スコープに宣言がありません」と怒られたらプロトタイプ宣言してみよう

f:id:macrochelys99:20190912001645p:plain

Arduinoでスケッチが長くなってきたら

機能ごとにファイルを分割したりしますよね。

で、コンパイルすると宣言がないと怒られたわけです。

でも

タブを切り替えるとちゃんとある。
f:id:macrochelys99:20190912002012p:plain

実際のスケッチは関数名が長いので、打ち間違えていないか一文字ずつ指差し確認

でも一致しているように見える。
テキストエディタにコピペして並べてみてもやっぱり同じだ。

おっかしいなぁ.....。

プロトタイプ宣言

f:id:macrochelys99:20190912002424p:plain

見つからないって言うんだから、見つかるようにプロトタイプ宣言してみようか。
Arduinoコンパイル時に自動でやってくれるから本来は要らない。)

あっ.......

f:id:macrochelys99:20190912002701p:plain

別のタブの別の関数で、ネストのカッコ閉じを失敗していました。

カッコを直したら

f:id:macrochelys99:20190912002848p:plain

プロトタイプ宣言を削除しても無事コンパイルが通るようになりました。

まとめ

正しく宣言がされているにも関わらずコンパイラに「宣言がない」と怒られたら、その関数をプロトタイプ宣言してみよう。

すると、真の原因が見つかるかもしれない。