LINUX.ORG.RU

Что означает x = i != 0?

 


0

1

Не разбираюсь в Си, но понадобилось пропатчить кое что. Есть строчка

x = i != 0;

Мне надо чтобы x был всегда равено нулю. Видимо мне надо заменить эту строчку на

x = 0;
но смущает !=0 в оригинале, что это означает? Гуглить не получилось, он такие вещи не ищет даже если взять в кавычки.



Последнее исправление: FriendlyFire (всего исправлений: 1)

x присваивается значение выражения 'i != 0'

что там в вашей сишечке с булевыми типами я промолчу

Deleted
()

Не разбираюсь в Си

видимо, не только в си

Видимо мне надо

да, именно это тебе и надо

f1u77y ★★★★
()

Будет сравнение и присвоение. Т.е. i сравнится с 0, а потом присвоит true или false. Я не спец, но в C, вроде, 0 и false одно и тоже.

theLastOfCats
()

что это означает?

То же, что и:

x = !!i;
edigaryev ★★★★★
()
Ответ на: комментарий от xaizek

Это я и без всяких стандартов делал

#include <stdio.h>

typedef enum {
        false = 0,
        true = 1,
} bool;

void main(void)
{
        bool a = true;
        printf("%d\n", a);
}
itn ★★★
()
Ответ на: Это я и без всяких стандартов делал от itn

Много кто делал, поэтому оно и не в языке, а в stdbool.h и сделано макросами.

А приведенный код не эквивалентен:

#include <stdbool.h>
#include <stdio.h>

void main(void)
{
    bool a = 5;
    printf("%d\n", a);
}
Это выведет 1, а с enum будет 5.

xaizek ★★★★★
()

я требую Царя, неугодные лалки

int13h ★★★★★
()

Что означает x = i != 0?

В старые добрые времена был такой анекдот: программист — это человек, способный ответить на вопрос, в котором уже есть ответ. Например, сколько будет "2 × 2 = 4"? True.

dexpl ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.