Няшная / Говнокод #405 Ссылка на оригинал

0

  1. 1
++i--;

Операция "подергивание"

Запостил: guest guest, (Updated )

Комментарии (19) RSS

  • [:]/\/\/\/\[:]:
    Операция "аккордеон", или кипячение.
    Ответить
    • с баша? а С поди и вовсе на луркморе придумали?
      Ответить
  • ft:
    [quote=Говногость]жестокий баян с баша[/quote]

    #92952 [ + 845 ? ] [:||||:] утверждена 2007-01-20 в 22:44
    Ответить
  • sss:
    ну вообще идея говнокода есть, присваивание пред. значения
    j = ++i--;
    Ответить
  • > ну вообще идея говнокода есть, присваивание пред. значения j = ++i--;

    А теперь берешь в руки стандарт и вдумчиво читаешь про sequence points. Твой код невалиден, значение j не определено (зависит от конкретной версии компилятора, и далее от расположения зведз на небосводе).
    Ответить
  • An expression is a sequence of operators and operands that specifies computation of a
    value, or that designates an object or a function, or that generates side effects, or that performs a combination thereof.

    Between the previous and next sequence point an object shall have its stored value
    modified at most once by the evaluation of an expression. Furthermore, the prior value
    shall be read only to determine the value to be stored.

    This paragraph renders undefined statement expressions such as
    i = ++i + 1;
    a[i++] = i;
    while allowing
    i = i + 1;
    a[i] = i;

    Так что результат выражения "--i++;" не определен, и не определено значение i.
    Ответить
    • и где здесь использование i в левой части выражения?
      Ответить
  • Orqodox:
    Ну при чём здесь sequence points? Не "результат выражения --i++ не определён", а выражение --i++ синтаксически неверно! Потому что i++ вообще не является lvalue (ни в Си, ни в плюсах, хотя правила там разные). А если компилятор это во что-то компилит, кроме сообщения об ошибке, то это плохой, негодный компилятор.
    Ответить
    • так зато --i является lvalue... которую потом можно inc
      Ответить
      • > --i является lvalue
        В си, емнип, не является. В крестах, емнип, является.
        Ответить
          • Ага. А в си, которому внезапно посвящен этот топик, ссылок нет. Поэтому там не прокатят ни i++ ни ++i;
            Ответить
    • (--i) не lvalue. Не взлетит 😉

      UPD: Хотя на крестах взлетит, но не на си.
      Ответить
      • Онлайн-магазин Китайская медицина
        -------------------------------------------------------------------
        Препараты из Китая, лечебные порошки, ароматические свечи, тампоны вагинит лечения
        гигиенический шампунь

        https://www.zbfarm.info/
        __________________________
        Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8