我是一名机器人专业本科生的导师,我们使用robotC (用于NXT机器人,4.50版)作为我们选择的平台。我注意到robotC中有一个奇怪的现象,那就是,出于某种原因,#杂注配置预处理器指令只有在程序的第一行才起作用。
#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()行必须是程序的第一行。我想知道为什么#杂注配置行必须是第一行。
发布于 2015-11-13 23:49:14
我不确定它的可信度,但我找到了宾夕法尼亚州立大学阿宾顿分校的ROBOTC指南。该指南提到#杂注语句必须是前几行。它后来说,他们甚至必须在任何评论之前。所以这里发生的问题是由
//comment在代码的第二行。
https://stackoverflow.com/questions/33663362
复制相似问题