Два «==» оператора равенства в одном и том же условии «если» не работают должным образом

Я пытаюсь установить равенство трех равных переменных, но следующий код не печатает очевидный правильный ответ, который он должен напечатать. Может кто-нибудь объяснить, как компилятор разбирает данноеif(condition) внутри?

#include
int main()
{
        int i = 123, j = 123, k = 123;
        if ( i == j == k)
                printf("Equal\n");
        else
                printf("NOT Equal\n");
        return 0;
}

Выход:

manav@workstation:~$ gcc -Wall -pedantic calc.c
calc.c: In function ‘main’:
calc.c:5: warning: suggest parentheses around comparison in operand of ‘==’
manav@workstation:~$ ./a.out
NOT Equal
manav@workstation:~$

РЕДАКТИРОВАТЬ:

Исходя из ответов, приведенных ниже, можно ли проверить следующее равенство следующим утверждением?

if ( (i==j) == (j==k))

Ответы на вопрос(4)

Ваш ответ на вопрос