Возможный дубликат:
Записанные версии логических операторов.Я замечаю, что C++ определяет ключевое слово
and
,or
,not
,xor
,and_eq
,or_eq
,not_eq
иxor_eq
как альтернатива&&
,||
,!
,^
,&=
,|=
,!=
и|=
. и они редко используются! Что случилось? Разве они не являются портативными?
Они пришли из C AFAIR из тех времен, когда не было известно, какие специальные символы есть на клавиатуре. Поэтому, чтобы иметь переносимый язык, они были определены так, чтобы любой мог использовать C, даже если он использует клавиатуру без &
, |
или ^
(и т.д.).
Сегодня, когда QWERTY является стандартом (с AZWERTY и др. в качестве вариаций), это уже не проблема.
PS. И конечно же для конкурсов обфускационного кода ;)