volatile

Discussion in 'LANGS.C' started by punxer, Mar 19, 2010.

  1. punxer

    punxer Андрей

    Blog Posts:
    0
    Joined:
    Oct 16, 2006
    Messages:
    1,327
    Location:
    Ржев
    volatile ULONG*= (ULONG*)0xaddress;

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

    Booster New Member

    Blog Posts:
    0
    Joined:
    Nov 26, 2004
    Messages:
    4,860
    Не понимаю как volatile может быть типом.
     
  3. karabas_barabas

    karabas_barabas Member

    Blog Posts:
    0
    Joined:
    Aug 9, 2009
    Messages:
    168
    char* smpointer = 0;
    а это лучше если в глоб переменную выносишь
    volatile char* smpointer = 0;
     
  4. Sol_Ksacap

    Sol_Ksacap Миша

    Blog Posts:
    0
    Joined:
    Mar 6, 2008
    Messages:
    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

    Blog Posts:
    0
    Joined:
    Mar 29, 2008
    Messages:
    1,775
    т.е. читать надо справа налево
     
  6. punxer

    punxer Андрей

    Blog Posts:
    0
    Joined:
    Oct 16, 2006
    Messages:
    1,327
    Location:
    Ржев
    Всем спасибо. Прозрение наступило)