Странный оператор
- Войдите на сайт для отправки комментариев
Вс, 24/09/2017 - 12:32
Всем привет на днях поевилась нужда в реле на ИК датчике. В библиотеке нашел пример но никак не могу понять што происходить в 2 строчках.
if (millis() - last > 250) { on = !on; //вот начало digitalWrite(RELAY_PIN, on ? HIGH : LOW); digitalWrite(13, on ? HIGH : LOW); //вот конец dump(&results); }
Что тут означает вопросительный знак двуйточие и как ето работает?
Это тернарный оператор. По простому - если истинно выражение до "?", то выполнится то, что до ":", иначе - после.
Короткой форме записи
соответствует длинная
Про оператор выше правильно написали.
А-фи-геть!
А написать просто:
религия не позволяет?
нормальный оператор.
Куда хуже для понимания конструкция
а можно и так x = a+++++b;
двуйточие.....
Этак вы и до Brainfuck-a скатитесь
Этак вы и до Brainfuck-a скатитесь
От Си до брейнфака можно только подняться!
Гуру кода, подскажите, пожалуйста, почему:
На эту строку компиль ругается:
типа оператору "+" скармливаются неправильные типы "const char",
а если "успокоить" gcc ручным приведением типов, которое, по идее тут ни во что не упиралось, т.к. результатом выполнения условной операции будет тип String:
то все работает?
CatSoup - в чем вопрос-то? String и char - разные типы, нуждаются в приведении.
CatSoup - в чем вопрос-то? String и char - разные типы, нуждаются в приведении.
странно, потому что у объекта String есть метод
странно, потому что у объекта String есть метод
так как ты пишешь - в операторе хотя бы один операнд должен быть типа String, а у автора все const char
проверил - вот такой код приведения не требует:
Таким образом, то, что заключено в " " - тип char, из этого становится понятно, почему нужно приведение, но... в таком случае - это массив типа char 0_о? Жизнь меня к такому не готовила))
так как ты пишешь - в операторе хотя бы один операнд должен быть типа String, а у автора все const char
Ви таки безусловно правы.
Значит ему первый операнд достаточно к String привести тогда и остальные отоматом приведуца.