Моя команда написала код для RobotC, язык с синтаксисом типа C. Он в основном используется в качестве вводного для программирования в робототехнике. В нем есть базовый элемент C: if, for и while loop, функции, и он даже имеет структуры, массивы и указатели, но они часто не используются. Основное различие заключается в том, что он взаимосвязан, имеет многопоточность, не является бесплатным, и вы можете составлять только один файл за раз.Как работает функция двигателя в Robot C
Мы хотели сделать моторный ход. Для этого вы обычно пишете.
motor[motorA] = 50;
motor
является массивом обеспечивается RobotC, который содержит все значения он установит двигатели с. motorA
- это перечисление для проводного порта.
50 - уровень мощности.
Мой партнер по команде случайно (или, возможно, намеренно) написал вместо
motor(motorA) = 50;
Я собирался исправить его, когда неожиданно, он скомпилирован и побежал отлично!
Я знаю Java и немного нормального C, и это просто не имеет смысла для меня. Вы не можете установить значение возврата функции ... можете ли вы?
Не могли бы вы объяснить, почему это работает?
Извините за вводящий в заблуждение тег, но мне не хватает репутации для создания тега RobotC. – Blubber
Я бы сказал, что, поскольку это язык студента, синтаксис не слишком строгий, если вы используете [] или() для доступа к индексу в массиве. Вы не должны думать об этом как о методе, называемом двигателем с параметром motorA, под крышками он, вероятно, будет преобразован в [] (или()) в любом случае, – Mathemats
. Я попробую провести некоторое тестирование, но я не думаю, что они будет преобразовывать() в [], потому что на нем есть как массивы, так и функции. Возможно, компилятор достаточно умен, чтобы знать, когда конвертировать, но было бы странно, если бы они добавили эту функцию, когда они могли лучше улучшить компилятор ... например, указать правильный номер строки, где есть ошибка. – Blubber