新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 射洪县| 涪陵区| 邵阳县| 襄城县| 东兰县| 黄冈市| 遂平县| 五河县| 安达市| 孟村| 龙山县| 赤壁市| 股票| 甘谷县| 旌德县| 湘西| 增城市| 苗栗县| 佳木斯市| 河北区| 萍乡市| 罗田县| 仁布县| 仲巴县| 滨海县| 海伦市| 博爱县| 耒阳市| 姚安县| 永平县| 通江县| 兰州市| 开平市| 通城县| 林口县| 平定县| 博湖县| 长宁县| 庆元县| 伊通| 弋阳县|