比如有函数
void old(char *fmt, ...); 
如何把它封装为
void new(char *fmt, ...); 使接口不变?因new函数要用old函数,并作一些修改。谢谢大家。

解决方案 »

  1.   

    void new(char *fmt, ...)
    {
    va_list valist;
    va_start(valist, fmt);

    old(fmt, valist);
    va_end(valist);
    }
      

  2.   

    谢谢2位,但是我的不行,如下,怎么修改呢?
    void print(char *fmt, ...)
    {
        va_list args;    va_start(args, fmt);
        mvprintw(1,0, fmt, args); // 在1行,0列输出,类似printf
        va_end(args);
    }
      

  3.   

    用mvprintw(1,0, "year is %d", 2005);可以正常输出。
    但是用print("year is %d", 2005);不会输出2005,而是一个其他的数。
      

  4.   

    void print(char *fmt, ...)
    {
        va_list args;    va_start(args, fmt);
        mvprintw(1,0, fmt, args); // 在1行,0列输出,类似printf
        va_end(args);
    }
    --------------------------------
    ????
      

  5.   

    to: greenteanet(扎扎实实打基础,保持一颗平常心。)用mvprintw(1,0, "year is %d", 2005);可以正常输出。
    但是用print("year is %d", 2005);不会输出2005,而是一个其他的数。