• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > C語言可變參數函數使用總結

    C語言可變參數函數使用總結

    作者: 時間:2013-05-13 來源:網絡 收藏

    do

    {

    selch = *fmt;

    if (selch!='%')

    {

    putch(*fmt);

    }

    else

    {

    selch = *++fmt;

    switch(selch)

    {

    case 'c':

    ch = va_arg(ap, int);

    printf("%c",ch);

    break;

    case 'd':

    ch = va_arg(ap,int);

    printf("%d",ch);

    break;

    case 'x':

    ch = va_arg(ap, int);

    printf("%#x",ch);

    break;

    case 'l':

    if(*++fmt== 'd')

    {

    i32value = va_arg(ap, long);

    printf("%ld",i32value);

    }

    else

    {

    putch('l');

    if(*fmt!=0)

    {

    putch(*fmt);

    }

    }

    break;

    default:

    break;

    }

    }

    ++fmt;

    }while(*fmt!='');

    va_end(ap);

    }

    void main(void)

    {

    TestFun("this is %d,%c,%x,%ld",1234,'6',0x2345,(long)12345678);

    getch();

    }

    void main(void)

    {

    TestFun("this is %d,%c,%x,%ld",1234,(char)'6',0x2345,(long)12345678);

    getch();

    }

    上述的example使用宏定義, var_start(ap, pareN),var_arg(ap,type),var_end(ap).

    var_start(ap, pareN) //是ap指向第一個變參.

    var_arg(ap,type),//返回變參的實際值.

    var_end(ap).//是ap指向空指針.

    具體的實現,在不同的下有所不同.


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 开远市| 漾濞| 松原市| 叶城县| 东乡族自治县| 大兴区| 桦南县| 蓬莱市| 汉寿县| 双牌县| 白玉县| 瑞安市| 鲁山县| 昌乐县| 富平县| 云霄县| 咸阳市| 台安县| 缙云县| 山丹县| 台东市| 如东县| 濉溪县| 安福县| 进贤县| 分宜县| 休宁县| 尉氏县| 同德县| 封丘县| 察雅县| 沂水县| 城固县| 嘉荫县| 从江县| 酉阳| 赤峰市| 衡水市| 林口县| 曲水县| 佛冈县|