日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來(lái)到深圳市穎特新科技有限公司!
語(yǔ)言
當(dāng)前位置:首頁(yè) >> 技術(shù)中心 >> 單片機(jī)入門 >> C語(yǔ)言可變參數(shù)函數(shù)使用總結(jié)

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

關(guān)鍵字:C語(yǔ)言 可變參數(shù) 函數(shù) 作者:admin 來(lái)源:不詳 發(fā)布時(shí)間:2018-05-19  瀏覽:8

//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);

}

//調(diào)用

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

//WIN-TC編譯通過(guò)

#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);

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),在不同的編譯環(huán)境下有所不同.

擴(kuò)展閱讀:?jiǎn)纹瑱C(jī)C語(yǔ)言編程心得

編輯:admin  最后修改時(shí)間:2018-05-19

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

西峡县| 如东县| 阿合奇县| 长乐市| 长寿区| 大名县| 哈尔滨市| 新邵县| 玉山县| 潜江市| 康保县| 泾源县| 丹江口市| 岳阳县| 晋州市| 盐津县| 周至县| 大悟县| 开化县| 百色市| 尤溪县| 电白县| 镇平县| 塔城市| 西乌珠穆沁旗| 黄浦区| 监利县| 广安市| 博客| 神池县| 夏河县| 青浦区| 潞城市| 行唐县| 临漳县| 临城县| 措勤县| 秭归县| 介休市| 大荔县| 吉首市|