|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Kirill Frolov 2:5030/827.2 04 Nov 2003 22:59:38 To : Alexandr Molchevsky Subject : Re: Kylix крек -------------------------------------------------------------------------------- On Sun, 02 Nov 03 11:58:57 +0300, Alexandr Molchevsky wrote: AM>>> i=(++i)+(++i)+(++i); AM> Это ты такой умный потому что тут сразу видно что это "идиотизм", а AM> когда у тебя в подобное разворачивается выражение из макросов, например, то AM> так сразу не скажешь. А ты пиши макросы нормально. AM> Легко! Вот "чудесное" наблюдение от Антона Москаля: AM> int stack [100]; AM> int *p = stack; AM> void push (int v) { *p++ = v; } AM> int pop (void) { return *--p; } AM> int add (void) { int i = pop (); return i + pop (); } AM> int fn (int c) { return c*10; } AM> # include <stdio.h> AM> int main (void) AM> { AM> printf ("%d, %d\n", AM> fn ((push (1), push (2), add ())), AM> fn ((push (3), push (4), add ())) AM> ); AM> return 0; AM> } Так, и где здесь чудеса? AM> Hа самом деле почему меня этот пример сильно удивил - я понял, что идиома, AM> которой я пользовался и считал безопасной, таковой не является - а именно - AM> extern int _temp; ^^^^^^^^^^^^^^^^^^^^^^^ Hу так и не удивительно. --- [ZX] * Origin: Зенит -- чемпион! (2:5030/827.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/3833cb764113.html, оценка из 5, голосов 10
|