最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

熟悉C語(yǔ)言宏定義的請(qǐng)進(jìn)!

作者:linjing 欄目:單片機(jī)
熟悉C語(yǔ)言宏定義的請(qǐng)進(jìn)!
現(xiàn)在需要一個(gè)在液晶上顯示格式串的程序,原型如下
  MyPrintf( uint xy, const CHAR *fmt, ... );
即在通常的顯示格式串前加上一個(gè)坐標(biāo)指示。

以前是使用函數(shù)寫(xiě)的,但在KeilC中可變長(zhǎng)度的參數(shù)列表占用太多內(nèi)存空間,
希望能定義成宏定義,可能的效果如下:

extern CHAR sbuffer[MAX+1];
#define MyPrintf( xy, fmt, ... ) { sprintf( sbuffer, fmt, ... ); MyPuts( xy, sbuffer ); }

但很明顯這種定義方法是行不通的,有沒(méi)知道標(biāo)準(zhǔn)答案的?




2樓: >>參與討論
yanfengzhu
如果不是太復(fù)雜就自己寫(xiě)一個(gè)嘍
 
3樓: >>參與討論
mVA
好象沒(méi)什么好辦法
 
4樓: >>參與討論
linjing
繼續(xù)頂!
自己寫(xiě)子程序倒不是很復(fù)雜,就是占用RAM太多,無(wú)法接受

5樓: >>參與討論
li3
如果用宏,只會(huì)占用更多的空間.
 
6樓: >>參與討論
xwj
那就用子程序調(diào)用啊,也只多2字節(jié)的堆棧
extern CHAR sbuffer[MAX+1];
MyPrintf( uint xy, const CHAR *fmt, ... )
{
sprintf( sbuffer, fmt, ... );
MyPuts( xy, sbuffer );
}

7樓: >>參與討論
linjing
to xwj, 編譯就不能通過(guò)的!
 
8樓: >>參與討論
taoest
樓主的是可變參數(shù)函數(shù)
樓主的是可變參數(shù)函數(shù),
這函數(shù)就那德性,耗內(nèi)存。
不用他就是了。調(diào)用的時(shí)候用兩行來(lái)寫(xiě)。

9樓: >>參與討論
linjing
說(shuō)的是啊:(
一言中的,就是因?yàn)樘膬?nèi)存,而且消耗的是DATA部分,一個(gè)函數(shù)調(diào)用下來(lái),再定義局部變量的時(shí)候就經(jīng)常捉襟見(jiàn)肘了:(

現(xiàn)在沒(méi)辦法就是用兩條語(yǔ)句寫(xiě)的,可是有好多程序以前用的是我前面說(shuō)到的那個(gè)函數(shù)原型,現(xiàn)在都要重新寫(xiě)過(guò),十分痛苦!

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
真不明白,這種設(shè)計(jì)還能如此可靠?
C51和匯編怎樣混編?
難題,高手請(qǐng)進(jìn)
用單片機(jī)控制投影儀的問(wèn)題?
想用工控板卡運(yùn)行98操作系統(tǒng)+觸摸式液晶屏,高人給點(diǎn)建議!
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào)