Развлечения на Си

FallenGamer своим постом вызвал у меня острый приступ ностальгии:

int i = 10;
while (i --> 0) // "оператор -->"
    foo();

Хотя его пост был про C#, но такая штука сработает практически во всех C-подобных языках. Я сразу вспомнил еще пару подобных забавных конструкций. Например, интересное определение макросов TRUE и FALSE:

#define TRUE ('/'/'/')
#define FALSE ('-'-'-')

или «оператор приведения к bool»:

int a = 0, b = 123;
a = !!a; // 0
b = !!b; // 1

А еще вот — логический XOR:

!a != !b

Очень вас прошу, не пользуйтесь в своем коде чем-либо подобным… Я уж и не говорю про примеры из книги «Алгоритмические трюки для программистов».

УжасноПлохоНормальноХорошоОтлично (2 голосов, средний: 5,00 из 5)
Loading ... Loading ...

Оставьте свой отзыв

Или введите OpenId:

XHTML: Можно использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">