このコードはavr-g ++コンパイラではコンパイルされません。見出しにエラーが表示されます。 15行か16行のいずれかをコメントアウトすると、コンパイルされます。 15行目と16行目の右側にある「colourArray」または「blackArray」を削除すると、コンパイルされます。また、15行目と16行目の '' greyDiff ''を変数代入のそれぞれの右側に置き換えた場合。 forループにない場合はコンパイルされます。それはコンパイラのバグではありませんか?クラス 'POINTER_REGS'(おそらくコンパイラのバグ)に流出するレジスタを見つけることができません
float colourArrayL[3] = {0, 0, 0};
float whiteArrayL[3] = {0, 0, 0};
float blackArrayL[3] = {0, 0, 0};
float colourArrayR[3] = {0, 0, 0};
float whiteArrayR[3] = {0, 0, 0};
float blackArrayR[3] = {0, 0, 0};
void setup()
{
for (byte i = 0; i < 3; i++)
{
float greyDiffL = whiteArrayL[i] - blackArrayL[i]; //the highest possible return minus the lowest returns the area for values in between
float greyDiffR = whiteArrayR[i] - blackArrayR[i];
colourArrayL[i] = (colourArrayL[i] - blackArrayL[i])/greyDiffL;
colourArrayR[i] = (colourArrayR[i] - blackArrayR[i])/greyDiffR;
}
}
void loop() {};
どのコンパイラバージョンですか? – TriskalJM
[Arduino issue 3972](https://github.com/arduino/Arduino/issues/3972)、[GCC 60040](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60040) )、[Stackoverflow question 39255127](http://stackoverflow.com/questions/39255127/arduino-error-unable-to-find-a-register-to-spill-in-class-no-regs) – rwong