我是机器人学本科班的导师,我们使用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 行必须是第一行。