Use abstract struct pointer in C implementation