0

私はロボティクスの学部生クラスの家庭教師であり、選択したプラットフォームとして 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 行が最初の行でなければならない理由が不思議です。

4

1 に答える 1

0

信憑性は定かではありませんが、ペンシルベニア州アビントンの ROBOTC ガイドを見つけました。このガイドでは、#pragma ステートメントは最初の数行でなければならないと述べています。後で、コメントの前にある必要があるとさえ言います。したがって、ここで発生している問題は、

//comment

コードの 2 行目に。

于 2015-11-13T15:49:13.613 に答える