Синтаксис Си????

Тема в разделе "WASM.BEGINNERS", создана пользователем LuckyDevil, 14 июл 2005.

  1. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Всем доброго!

    Немогу понять вот этот участок кода:
    Код (Text):
    1.  
    2. else {
    3.  
    4.             PSPY_COMPLETION_CONTEXT_W2K completionContext = Context;
    5.  
    6.             //
    7.             //  We are already at passive level, so we will just call our
    8.             //  worker routine directly.
    9.             //
    10.  
    11.             (completionContext->WorkItem.WorkerRoutine)(completionContext->WorkIte m.Parameter);
    12.         }
    13.  


    что означают вырожения подобного рода (completionContext->WorkItem.WorkerRoutine)(completionContext->WorkIte m.Parameter);

     
  2. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    Вызов функции completionContext->WorkItem.WorkerRoutine() с параметром completionContext->WorkIte m.Parameter
     
  3. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Dr.Golova, щас гляну.

    Заранее спасибо!
     
  4. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Dr.Golova, точно. а я то подумал, что это что-то из штучек Си ))).

    Спасибо, еще раз!!!!
     
  5. rgo

    rgo New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    87




    И из C тоже ;)

    Если бы это был C, я бы сказал что WorkerRoutine был объявлен примерно таким образом:



    void (*WorkerRoutine)(typeof (completionContext->WorkItem.Parameter));
     
  6. _DEN_

    _DEN_ DEN

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



    Только typedef а не typeof :derisive:
     
  7. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    Спасибо всем за советы, но я тут еще кое-что для себя обнаружил, немогу понять как это может быть?
    Код (Text):
    1.  
    2.             if ((devList[i] != FSDeviceObject) &&
    3.                 (devList[i]->DeviceType == FSDeviceObject->DeviceType) &&
    4.                 !SpyIsAttachedToDevice( devList[i], NULL )) {
    5.  




    где

    PDEVICE_OBJECT FSDeviceObject;

    PDEVICE_OBJECT *devList;

    т.е. указатель на объект PDEVICE_OBJECT , тогда как

    как может выполниться это условие if ((devList != FSDeviceObject)???

    Это все наводит меня на мысль, что в данном случае

    devList это уже раименнованная переменная(*devList), прав ли я?
     
  8. R_NEW

    R_NEW New Member

    Публикаций:
    0
    Регистрация:
    6 май 2005
    Сообщения:
    86
    Адрес:
    Россия
    devList имеет тип PDEVICE_OBJECT. Сравниваются переменные одинаковых типов. devList аналогично *(devList + i)
     
  9. LuckyDevil

    LuckyDevil New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2005
    Сообщения:
    278
    Адрес:
    Uzbekistan
    R_NEW, ясно.