新聞中心

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

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

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

        //ADS1.2下編譯使用

        void TestFun(char* fmt,...)

        {

        int ch;

        char selch = 0;

        va_list ap = NULL;

        va_start(ap, fmt);

        do

        {

        selch = *fmt;

        if (selch!='%')

        {

        putchar(*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;

        }

        }

        ++fmt;

        }while(*fmt!='');

        va_end(ap);

        }

        //調用

        TestFun((char*)"this is %d,%c,%x",1234,'6',0x12345);

        //WIN-TC編譯通過

        #i nclude

        /************************************************************

        typedef void *va_list;

        #define va_start(ap, parmN) (ap = ...)

        #define va_arg(ap, type) (*((type *)(ap))++)

        #define va_end(ap)

        ***************************************************/

        void TestFun(cosnt char* fmt,...)

        {

        int ch;

        long i32value = 0;

        char selch = 0;

        va_list ap = 0;

        va_start(ap, fmt);


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 红河县| 珠海市| 闽侯县| 江达县| 岳阳市| 博兴县| 阿坝| 怀集县| 新营市| 明水县| 资源县| 行唐县| 襄汾县| 修武县| 黎平县| 织金县| 施甸县| 临颍县| 河南省| 大田县| 通山县| 丽水市| 连城县| 洛阳市| 霍林郭勒市| 兴义市| 长葛市| 吉木萨尔县| 东安县| 灵璧县| 襄汾县| 澄江县| 准格尔旗| 隆子县| 东丰县| 年辖:市辖区| 西平县| 六盘水市| 安泽县| 余江县| 章丘市|