Массив указателей на функции в C++

Тема в разделе "LANGS.C", создана пользователем Sholar, 15 ноя 2011.

  1. Sholar

    Sholar New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2011
    Сообщения:
    189
    Почему такой код не компилируется:
    Код (Text):
    1. DWORD WINAPI (*func)(PVOID);
    2. DWORD WINAPI (*func_array[10])(PVOID);
    3. func = func_array[0];
    Хотя вот так работает прекрасно:
    Код (Text):
    1. DWORD WINAPI (*func)(PVOID);
    2. DWORD WINAPI (*second_func)(PVOID);
    3. func = second_func;
    В чем подвох? Где я ошибся?
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Вроде нормально, Comeu схавал:
    Код (Text):
    1. int main ()
    2. {
    3.  int (*func)(void);
    4.  int (*func_array[10])(void);
    5.  func = func_array[0];
    6. }
     
  4. Sholar

    Sholar New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2011
    Сообщения:
    189
    А MinGW не хочет. И самое главное сообщение об ошибке вводит в глубокий ступор:
     
  5. Sholar

    Sholar New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2011
    Сообщения:
    189
    Кстати, без WINAPI, оказывается, компилируется.
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Компилятор какой?
     
  7. Sholar

    Sholar New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2011
    Сообщения:
    189
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Нету такого.
     
  9. Sholar

    Sholar New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2011
    Сообщения:
    189
  10. Sholar

    Sholar New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2011
    Сообщения:
    189
    MinGW-порт GCC под винду.
     
  11. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Try this - DWORD ( WINAPI *func)(PVOID);
     
  12. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    поставь атрибут внутрь скобок:
    Код (Text):
    1. DWORD (WINAPI* func)(PVOID);
    2. DWORD (WINAPI* func_array[10])(PVOID);
    3. func = func_array[0];
    ЗЫ не успел((((
     
  13. Sholar

    Sholar New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2011
    Сообщения:
    189
    Огромное спасибо.