2

我的团队正在为 RobotC 编写代码,这是一种具有类 C 语法的语言。它主要用作机器人编程的介绍。它具有基本的 C 内容:if 语句、for 和 while 循环、函数,甚至还有结构、数组和指针,但它们并不经常使用。主要区别在于它是多线程的、多线程的、不是免费的,而且一次只能编译一个文件。

我们想做一个马达动作。为此,您通常会编写。

 motor[motorA] = 50;

motor是 RobotC 提供的一个数组,其中包含将电机设置为的所有值。 motorA是有线端口的枚举。
50是功率等级。

我的队友不小心(或者可能是故意)写了这个

 motor(motorA) = 50;

我正要纠正他,但令人惊讶的是,它编译并运行良好!

我知道 Java 和一点普通的 C,这对我来说没有意义。您不能设置函数返回的值...可以吗?

有人可以解释一下为什么会这样吗?

4

1 回答 1

2

如果您查看 RobotCIntrinsics.c(当您打开代码文件时,只需右键单击其中一个电机 [] 命令并从上下文菜单中选择“转到定义/声明”即可查看),您会发现电机命令被定义为“属性”。现在,我不能说这到底是什么意思,但根据我的经验,这意味着您可以使用 [] 或 () 来访问其中的值。它不是数组,也不是函数调用。这完全是另外一回事,显然允许使用这两种语法。

于 2015-05-23T19:32:10.430 回答