私はロボティクスの学部生クラスの家庭教師であり、選択したプラットフォームとして robotC (NXT ロボティクス用、バージョン 4.50) を使用しています。私が気づいた robotC の奇妙な癖は、何らかの理由で、#pragma config プリプロセッサ ディレクティブがプログラムの最初の行である場合にのみ機能することです。
#pragma config(Sensor, S1, touch, SensorTouch)
//comment
#pragma config(Sensor, S2, touch2, SensorTouch)
task main()
{
while(true){
nxtDisplayTextLine(0,"%i",SensorValue(touch));
nxtDisplayTextLine(1,"%i",SensorValue(touch2));
}
}
この単純なプログラムを実行すると、次のコンパイル エラーが発生します。
**Error**:'#pragma config(...)' must be first lines of source file
**Error**:Undefined variable 'touch2'. 'short' assumed.
その最初のエラーの理由は何ですか? #pragma config() がソースファイルの最初の行でなければならない理由をリストしているドキュメントには何も見つかりません。
編集:明確にするために。#pragma config() 行はプログラムの最初の行である必要があるため、プログラムの 2 行目に // コメントがあるためにエラーが発生することを理解しています。#pragma config 行が最初の行でなければならない理由が不思議です。