приоритет операций: condition ? a : b

Тема в разделе "LANGS.C", создана пользователем cupuyc, 22 май 2010.

  1. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    есть такая запись
    Код (Text):
    1.   static const int m_x =
    2.     x == 0 ? 1 :
    3.     x == 1 ? 4 :
    4.     x == 2 ? 10 :
    5. ...
    правильна ли она отработает, в том смысле, что при x равном 0, m_x станет 1; при x равном 1, m_x станет 4; при x равном 2, m_x станет 10 и т.д.?
     
  2. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Вопрос некорректный :) Но да, работать будет так, как ты предположил.
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    вот за это мы любим Си!
     
  4. osox

    osox New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2009
    Сообщения:
    280
    Committee Draft — November 24, 2009 ISO/IEC 9899:201x
     
  5. osox

    osox New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2009
    Сообщения:
    280
    кстати вот сам стандарт C99 откуда эта вырезка

    http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1425.pdf
     
  6. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    n0name, а мы любим С++ :)))
     
  7. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    cupuyc
    Где здесь операции выполняющиеся по приоритету?
     
  8. tex32

    tex32 New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2009
    Сообщения:
    202
    НЕ работает, объясните.
     
  9. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    А мы любим то, что приоритет тернарной операции ?: в С и С++ разный :) причем в С++ у нее еще и разный приоритет слева и справа :):):)

    Наверное, имелась в виду ассоциативность.

    tex32
    что именно?
     
  10. tex32

    tex32 New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2009
    Сообщения:
    202
    static const int m_x - насколько я понимаю, такая инициализация не будет работать. Константа ведь или есть тайный смысл?
     
  11. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    tex32

    Все будет работать. :? как раз в отличие от if-else позволяет инициализировать ссылки и константы.
     
  12. tex32

    tex32 New Member

    Публикаций:
    0
    Регистрация:
    24 окт 2009
    Сообщения:
    202
    Спасибо за разъяснения.