怎么在主函数中调用结构体中声明的函数

如何在主函数中调用结构体中声明的函数
typedef struct svg_render_engine {
    svg_status_t (* move_to) (void *closure, double x, double y);//1
    svg_status_t (* line_to) (void *closure, double x, double y);//2
    svg_status_t (* curve_to) (void *closure,
       double x1, double y1,
       double x2, double y2,
       double x3, double y3);//3
} svg_render_engine_t;

在头文件中声明了这样一个结构体,我想在主函数中分别定义1.2.3这3个函数,应该怎么做。求大神指点。我一起用的OC,最近才需要用C来编写,是个新手。
------解决思路----------------------
svg_render_engine_t e1, *e2;
svg_status_t r;
void *closure;
double x[3], y[3];
r = e1.move_to(closure, x[0], y[0]);
r = e2->line_to(closure, x[0], y[0]);
r = e2->curve_to(closure, x[0], y[0], x[1], y[1], x[2], y[2]);

------解决思路----------------------
是这个意思不?--->
typedef struct svg_render_engine {
     svg_status_t (* move_to) (void *closure, double x, double y);//1
     svg_status_t (* line_to) (void *closure, double x, double y);//2
     svg_status_t (* curve_to) (void *closure,
        double x1, double y1,
        double x2, double y2,
        double x3, double y3);//3
 } svg_render_engine_t;
 
 svg_status_t move_to (void * closure, double x, double y)
 {
     /* …… */
 }

 svg_status_t line_to (void * closure, double x, double y)
 {
     /* …… */
 }

 svg_status_t curve_to (void * closure,
        double x1, double y1,
        double x2, double y2,
        double x3, double y3)
{
    /* …… */
}

int main (void)
{
    svg_render_engine_t sre = {move_to, line_to, curve_to};
    sre.move_to (/* …… */);
    sre.line_to (/* …… */);
    sre.curve_to (/* …… */);
}