现在的位置: 首页 > 综合 > 正文

利用指针数组执行多个函数方法

2013年03月25日 ⁄ 综合 ⁄ 共 781字 ⁄ 字号 评论关闭

typedef int SearchRoute (char *address, struct in_addr *in, struct in_addr *addr_out, char *best_if, size_t best_iflen, unsigned long *best_netmask, char *errmsg, int errmsglen);

static SearchRoute SearchUsingProcRoute;
static SearchRoute SearchUsingRouteCmd;

static SearchRoute *search_mechs[] =

{
 &SearchUsingProcRoute,
 &SearchUsingRouteCmd,
 NULL
};

int main()

{

      SearchRoute **sr = search_mechs;
      char errmsg[MAXSTR] = "No valid mecahnisms";
      int rc = OCF_ERR_GENERIC;

      strcpy(best_if, "UNKNOWN");

      while (*sr)

      {
            errmsg[0] = '\0';
            rc = (*sr) (address, &in, &addr_out, best_if , sizeof(best_if) , &best_netmask, errmsg, sizeof(errmsg));
            if (!rc) 
                 break;
            sr++;
     }
     if (rc != 0)

     { 
            if (*errmsg) {
            fprintf(stderr, "%s", errmsg);
    }
    return(rc);

}

抱歉!评论已关闭.