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() 必须是源文件的第一行,只是它必须是。

编辑:澄清。我知道错误是由于程序第二行上的 //comment 引起的,因为 #pragma config() 行必须是程序的第一行。我想知道为什么#pragma config 行必须是第一行。

4

1 回答 1

0

我不确定它的可信度,但我从 Penn State Abington 找到了一份 ROBOTC 指南。该指南提到#pragma 语句必须是前几行。后来继续说,他们甚至必须在任何评论之前。所以这里发生的问题是由

//comment

在代码的第二行。

于 2015-11-13T15:49:13.613 回答