新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C語(yǔ)言可變參數(shù)函數(shù)使用總結(jié)

C語(yǔ)言可變參數(shù)函數(shù)使用總結(jié)

作者: 時(shí)間:2013-05-13 來(lái)源:網(wǎng)絡(luò) 收藏

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指向第一個(gè)變參.

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

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

具體的實(shí)現(xiàn),在不同的下有所不同.


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉