Они возникли в C в заголовке <iso646.h>
. В то время существовали клавиатуры, которые не могли набирать необходимые символы для &&
(например), поэтому заголовок содержал #define
, которые помогли бы им в этом, определив (в нашем примере) and
быть &&
. Конечно, с течением времени это стало менее используемым.
В C ++ они стали так называемыми альтернативными токенами . Вы не должны включать что-либо для использования этих токенов в совместимом компиляторе (поэтому версия заголовка C на языке C ++, <ciso646>
, пуста). Альтернативные токены аналогичны обычным токенам, за исключением написания. Таким образом, во время синтаксического анализа and
является точно таким же, как &&
, это просто другой способ написания одной и той же вещи.
Что касается их использования: поскольку они используются редко, их использование часто более удивительно и запутанно, чем полезно. Я уверен, что если бы это было нормально, их было бы намного легче читать, но люди так привыкли к &&
и ||
всему, что только отвлекает.
РЕДАКТИРОВАТЬ: Однако я видел очень небольшое увеличение их использования, так как я опубликовал это, однако. Я все еще избегаю их.