音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(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)

作者:sir_h 欄目:單片機(jī)
(求助) C語(yǔ)言高手請(qǐng)進(jìn)
  因?yàn)橐龅讓域?qū)動(dòng),希望高效最好,同時(shí)還要兼顧可讀性,所以想把以前的函數(shù)改成宏定義以節(jié)省時(shí)間。
  但實(shí)現(xiàn)起來(lái)就有了問題:
 。,對(duì)于無(wú)返回值的函數(shù),
    我看到有這種方法,感覺還算合理:
    void read(CHAR x,CHAR y)
    {
      x;//函數(shù)里面的代碼
      y;

    }
    改成宏定義為:
    #define read(x,y) do{x;y;}while(0)

    感覺這個(gè)方法還算不錯(cuò),但有一個(gè)小問題,如果函數(shù)體內(nèi)部    要定義變量的話,用這種方法就編譯不通了。如:
    void read(CHAR x,CHAR y)
    {
     CHAR z;
     x;//函數(shù)里面的代碼
     y;
     z;

     }
     如果是無(wú)返回值的函數(shù),也可以不用定義變量。
     大俠們是不是還有別的方法?

   。。帶返回值的函數(shù):
    怎樣做一個(gè)宏定義替代帶有返回值的函數(shù)呢?





* - 本貼最后修改時(shí)間:2006-2-22 11:34:58 修改者:sir_h

2樓: >>參與討論
computer00
你要知道,宏的實(shí)質(zhì)是代碼替換,而并不是調(diào)用
所以無(wú)法返回值,如果硬是要有個(gè)返回值,可以考慮在宏中使用逗號(hào)語(yǔ)句。但不能在中間聲明變量(C++可以)。


宏的展開是在編譯時(shí)完成的,即將宏的定義,復(fù)制到到代碼中。如果復(fù)制到代碼中后,不符合語(yǔ)法規(guī)則,當(dāng)然就編譯通不過(guò)了。

3樓: >>參與討論
zxj005
你小子也特懶了點(diǎn)吧
優(yōu)化好你的C,不行就嵌匯編啊。

4樓: >>參與討論
xwj
你怎樣定義成宏又有什么意義呢?
根本就不能達(dá)到節(jié)省時(shí)間的目的,
只會(huì)徒然破壞程序的結(jié)構(gòu)性和可讀性

同意樓上說(shuō)的:
優(yōu)化好你的C,不行就嵌匯編啊。


5樓: >>參與討論
sir_h
回復(fù)以上二位
我所用的十六位單片機(jī)的一條指令大概執(zhí)行50ns,但一個(gè)空函數(shù)至少需要400到500ns,如果函數(shù)內(nèi)部的語(yǔ)句不多,函數(shù)本身所耗的時(shí)間就不得不計(jì)算。

    因?yàn)閲?guó)內(nèi)關(guān)于這個(gè)單片機(jī)的資料就不多,而且我匯編底子很差,所以想用C完成,比較可靠一些。



6樓: >>參與討論
computer00
的確,對(duì)于一些很短的、一樣的代碼部分,可以使用宏定義代替函數(shù)
可以起到加快代碼運(yùn)行速度的作用。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
局部靜態(tài)變量和全局變量的區(qū)別
在KEIL C51 中 C語(yǔ)言里怎樣加入?yún)R編語(yǔ)言呢
(求助)關(guān)于51燒錄的問題,大俠們都來(lái)說(shuō)一下吧。
哪兒能買到德州儀器生產(chǎn)的324運(yùn)放
對(duì)單片機(jī)初學(xué)者的建議以及可供參考的單片機(jī)學(xué)習(xí)方案
免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)