extern void* memset(void *, int, size_t);
Есть нормальная строчка
memset(&engine, 0, sizeof(engine));
Эклипс подсвечивает её красным, пишет
Invalid arguments ' Candidates are: void * memset(void *, int, ?) '
То есть он как-то не смог распознать тип третьего аргумента в заголовке функции штоле?