что означает данная операция "int1 = int2 >= int3"?

NikNik
Offline
Зарегистрирован: 08.11.2018

помогите, плиз, разобраться в коде "int1 = int2 >= int3"

это сокращенная запись условия?

negavoid
Offline
Зарегистрирован: 09.07.2016
if ( int2 >= int3 )
{
  int1 = 1;
}
else
{
  int1 = 0;
}
asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

NikNik пишет:

помогите, плиз, разобраться в коде "int1 = int2 >= int3"

это сокращенная запись условия?

Не совсем. Это присвоение int1 результата сравнения int3 c int3. Можно записать как

int1 = (int2 >= int3)

А логические операции в С/С++ возвращают 1 когда истинно и 0 когда ложно. То есть можно развернуть в код который привел negavoid

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

negavoid пишет:

if ( int2 >= int3 )
{
  int1 = 1;
}
else
{
  int1 = 0;
}

только эта конструкция отнимет шесть байт кода дополнительно

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

А эта?

int1 = int2>=int3 ? 1 : 0;

Гриша
Offline
Зарегистрирован: 27.04.2014

DetSimen пишет:

А эта?

int1 = int2>=int3 ? 1 : 0;

переменная int1 = 1 если int2>=int3   - true (для условия выше)

переменная int1 = 0 если int2 < int3   -  true (для условия выше)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Я у предыдущего аратара спрашивал, скока такая конструкция байт отнимет.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

Я у предыдущего аратара спрашивал, скока такая конструкция байт отнимет.

1. int1 = int2>=int3 ? 1 : 0;

Скетч использует 616 байт (1%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 15 байт

2. int1=int2>=int3;
Скетч использует 616 байт (1%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 15 байт (0%)

3. if ( int2 >= int3 ){  int1 = 1;}
else
{  int1 = 0;}
Скетч использует 622 байт (1%) памяти устройства. Всего доступно 32256 байт.
Глобальные переменные используют 15 байт (0%)

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Оно и понятно почему 15 байт

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

BOOM пишет:

Оно и понятно почему 15 байт

а вот если бы запись была вида -

int1=(int2>=int3);

То и вопроса видимо не было, говорил жеж ЕвгенийП неоднократно, не ленитесь ставить скобки