определить максимальное значение типа

Тема в разделе "LANGS.C", создана пользователем cupuyc, 29 ноя 2009.

  1. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    пишу вот такую конструкцию:
    Код (Text):
    1. #define MAX_UNSIGNED_TYPE_VAL(t)    ((1 << 8 * sizeof(t)) - 1)
    компилятор выдаёт предупреждение: warning C4293: '<<' : shift count negative or too big, undefined behavior
    всё, вроде работает, но закралась у меня подозрение - может на гцц работать не будет или для некоторых больших типов, типа unsigned __int128. вот и думаю - насколько это черевато последствиями.
     
  2. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    а чем неподходит #include <limits> ?
     
  3. _DEN_

    _DEN_ DEN

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

    А вообще послушай умный совет varnie.
     
  4. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    А хотя и это не выход. Так что юзать std::numeric_limits и не изобретать велики.
     
  5. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    угумс. не вариант.