Случайный без параметров
Во время конкурса по программированию я использовал следующую строку кода:
symbols[i] = random() & 0b11;
После конкурса, когда я заглянул в справочник Arduino, я обнаружил, что случайным образом принимается один или два параметра. Исходя из этого, я ожидаю, что код не скомпилируется. Однако этот код каким-то образом сработал так, как я ожидал. (Присвоение случайного числа от 0 до 3) Почему?
@Svízel přítula, 👍0
1 ответ
Просто: random() — это не функция Arduino, а стандартная функция C.
Функция случайная()
длинный случайный(void)Функция
random()вычисляет последовательность псевдослучайных целых чисел в диапазоне от 0 доRANDOM_MAX(как определено в заголовочном файле<stdlib .h>).Функция
srandom()устанавливает свой начальный аргумент в качестве начального числа для новой последовательности псевдослучайных чисел, возвращаемой функциейrand(). Эти последовательности можно повторять, вызываяsrandom()с тем же начальным значением.Если начальное значение не указано, функциям автоматически присваивается значение 1.
-- Страница руководства AVR LIBC
- Возможно ли, чтобы функция возвращала строку ИЛИ число, в зависимости от адреса
- Как использовать SPI на Arduino?
- Библиотека DHT.h не импортируется
- Светодиоды: разница между общим анодом и общим катодом
- Как повторить кусок кода
- Как работают прерывания на Arduino Uno и аналогичных платах?
- Почему эта программа на C++ не может прочитать Serial.write() моего arduino?
- Отображение двоичных данных на светодиодах
Сами функции Arduino фактически используют «случайную» функцию без аргументов. [См. исходный код](https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/WMath.cpp#L35-L50), @Gerben