次のスケッチは、Arduino 環境でのコンパイルに失敗します。
Arduinoソフトウェア内でtypedefを使用できることを考えると、自動プロトタイプ生成は失敗の原因となる根本的なメカニズムですか? もしそうなら、それは何で、Arduino が C++ の軽量ラッパーを提供しないのはなぜですか?
#define PRODUCE_WACKY_COMPILETIME_ERROR
typedef int MyMeaningfulType;
#ifndef PRODUCE_WACKY_COMPILETIME_ERROR
void myFunc(MyMeaningfulType myParam);
#endif
void myFunc(MyMeaningfulType myParam)
{
myFunc(10);
}
void setup() {}
void loop() {}
検索エンジンのために、報告されるエラーは次のとおりです。
error: variable or field 'myFunc' declared void
error: 'MyMeaningfulType' was not declared in this scope