Понимаю что код не верный, но думаю смысл задачи понятен:
void setup() {
// put your setup code here, to run once:
}
long check(long value)
{
if(100<a<1000000){return value;}
}
long a=100000;
long b=0;
void loop() {
// put your main code here, to run repeatedly:
delay(1000);
if(b=check(a)){}
}
бред полнейший, а не код
Вот такие условия нельзя использовать:
Во вторых, сама функция - если условие истинно, она возвращает значение. А если нет?
Оператор-то “=” все равно что-то должен присваивать в этой строчке:
Это не говоря о том, что в этом коде функция вообще ни к сему ни к городу.
@3d_killer . вы на форуме вроде года три уже - неужели до сих пор не научились азам языка С? Не стыдно?
Напрасно думаете. В названии топика бессмысленный набор слов.
Рискну предположить, что Вы хотели, чтобы функция возвращала значение только при выполнении некоторого условия. Если так, то нет - невозможно. Функция либо возвращает значение, либо нет. Это фундаментальная вещь в программировании.
Есть старый, но очень жизненный анекдот как раз в точности на эту тему: программист перед сном всегда ставил на тумбочку стакан с водой и пустой стакан. Первый - на случай, если ночью захочется пить, а второй - на случай, если пить не захочется.
Я думаю в случае ТС подойдёт такая конструкция (если я правильно понял, что он имел ввиду):
long check(long value) {
if (100 < value && value < 1000000) {
return value;
}
return 0;
}
При этом если условие не выполнится, то b присвоится ноль (в текущем коде ничему не противоречит), но само условие в основной программе не выполнится (как текущий код и предполагает).