volatile

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

  1. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    volatile ULONG*= (ULONG*)0xaddress;

    Volatile будет ULONG или ULONG*?
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Не понимаю как volatile может быть типом.
     
  3. karabas_barabas

    karabas_barabas Member

    Публикаций:
    0
    Регистрация:
    9 авг 2009
    Сообщения:
    168
    char* smpointer = 0;
    а это лучше если в глоб переменную выносишь
    volatile char* smpointer = 0;
     
  4. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    volatile ULONG* p = (ULONG*)0x400;
    ULONG volatile* p = (ULONG*)0x400;
    Переменная "p" является указателем на волатильный ULONG, лежащий по адресу 0x400.

    ULONG* volatile p = (ULONG*)0x400;
    Переменная "p" является волатильным указателем на ULONG, лежащий по адресу 0x400.


    При использовании указателей для "volatile", как и для "const", действует очень простое правило – нужно смотреть, с какой стороны звёздочка. Она играет роль разделителя между указателем и его целью. Соответственно всё, находящееся по левую сторону звезды, относится к цели указателя, а всё, что по правую – к самому указателю.
     
  5. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    т.е. читать надо справа налево
     
  6. punxer

    punxer Андрей

    Публикаций:
    0
    Регистрация:
    16 окт 2006
    Сообщения:
    1.327
    Адрес:
    Ржев
    Всем спасибо. Прозрение наступило)