ROBOT:为什么#pragma config()预处理器指令必须是源文件的第一行



我是机器人学本科生班的导师,我们使用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()行必须是程序的第一行。我想知道为什么#pragma-config行必须是第一行。

我不确定它的可信度,但我找到了宾夕法尼亚州立大学阿宾顿分校的机器人指南。指南中提到#pragma语句必须是前几行。它后来说,他们甚至必须在任何评论之前。因此,这里出现的问题是由引起的

//comment

在代码的第二行。

最新更新