機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
C語(yǔ)言的一些特點(diǎn)
C語(yǔ)言的一些特點(diǎn)
 更新時(shí)間:2008-7-27 16:15:22  點(diǎn)擊數(shù):2
【字體: 字體顏色
  通過(guò)上述的幾個(gè)例子,可以得出一些結(jié)論:

  1、C程序是由函數(shù)構(gòu)成的,一個(gè)C源程序至少包括一個(gè)函數(shù),一個(gè)C源程序有且只有一個(gè)名為main()的函數(shù),也可能包含其它函數(shù),因此,函數(shù)是C程序的基本單位。主程序通過(guò)直接書(shū)寫(xiě)語(yǔ)句和調(diào)用其它函數(shù)來(lái)實(shí)現(xiàn)有關(guān)功能,這些其它函數(shù)可以是由C語(yǔ)言本身提供給我們的(如例3中的_crol_(…)函數(shù)),這樣的函數(shù)稱(chēng)之為庫(kù)函數(shù),也可以是用戶(hù)自己編寫(xiě)的(如例2、3中用的mDelay(…)函數(shù)),這樣的函數(shù)稱(chēng)之為用戶(hù)自定義函數(shù)。那么庫(kù)函數(shù)和用戶(hù)自定義函數(shù)有什么區(qū)別呢?簡(jiǎn)單地說(shuō),任何使用Keil C語(yǔ)言的人,都可以直接調(diào)用C的庫(kù)函數(shù)而不需要為這個(gè)函數(shù)寫(xiě)任何代碼,只需要包含具有該函數(shù)說(shuō)明的相應(yīng)的頭文件即可;而自定義函數(shù)則是完全個(gè)性化的,是用戶(hù)根據(jù)自己需要而編寫(xiě)的。Keil C提供了100多個(gè)庫(kù)函數(shù)供我們直接使用。

  2、一個(gè)函數(shù)由兩部份組成:

 。1)函數(shù)的首部、即函數(shù)的第一行。包括函數(shù)名、函數(shù)類(lèi)型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、參數(shù)類(lèi)型。

  例如:void mDelay (unsigned int DelayTime)

  一個(gè)函數(shù)名后面必須跟一對(duì)圓括號(hào),即便沒(méi)有任何參數(shù)也是如此。

 。2)函數(shù)體,即函數(shù)首部下面的大括號(hào)“{}”內(nèi)的部份。如果一個(gè)函數(shù)內(nèi)有多個(gè)大括號(hào),則最外層的一對(duì)“{}”為函數(shù)體的范圍。

  函數(shù)體一般包括:

  聲明部份:在這部份中定義所用到的變量,例1.2中unsigned char j。

  執(zhí)行部份:由若干個(gè)語(yǔ)句組成。

  在某此情況下也可以沒(méi)有聲明部份,甚至即沒(méi)有聲明部份,也沒(méi)有執(zhí)行部份,如:

void mDelay()

{}

  這是一個(gè)空函數(shù),什么也不干,但它是合法的。

  在編寫(xiě)程序時(shí),可以利用空函數(shù),比如主程序需要調(diào)用一個(gè)延時(shí)函數(shù),可具體延時(shí)多少,怎么個(gè)延時(shí)法,暫時(shí)還不清楚,我們可以主程序的框架結(jié)構(gòu)弄清,先編譯通過(guò),把架子搭起來(lái)再說(shuō),至于里面的細(xì)節(jié),可以在以后慢慢地填,這時(shí)利用空函數(shù),先寫(xiě)這么一個(gè)函數(shù),這樣在主程序中就可以調(diào)用它了。

  3、一個(gè)C語(yǔ)言程序,總是從main函數(shù)開(kāi)始執(zhí)行的,而不管物理位置上這個(gè)main()放在什么地方。例1.2中就是放在了最后,事實(shí)上這往往是最常用的一種方式。

  4、主程序中的mDelay如果寫(xiě)成mdelay就會(huì)編譯出錯(cuò),即C語(yǔ)言區(qū)分大小寫(xiě),這一點(diǎn)往往讓初學(xué)者非常困惑,尤其是學(xué)過(guò)一門(mén)其它語(yǔ)言的人,有人喜歡,有人不喜歡,但不管怎樣,你得遵守這一規(guī)定。

  5、C語(yǔ)言書(shū)寫(xiě)的格式自由,可以在一行寫(xiě)多個(gè)語(yǔ)句,也可以把一個(gè)語(yǔ)句寫(xiě)在多行。沒(méi)有行號(hào)(但可以有標(biāo)號(hào)),書(shū)寫(xiě)的縮進(jìn)沒(méi)有要求。但是建議讀者自己按一定的規(guī)范來(lái)寫(xiě),可以給自己帶來(lái)方便。

  6、每個(gè)語(yǔ)句和資料定義的最后必須有一個(gè)分號(hào),分號(hào)是C語(yǔ)句的必要組成部份。

  7、可以用/*…..*/的形式為C程序的任何一部份作注釋?zhuān)凇?*”開(kāi)始后,一直到“*/”為止的中間的任何內(nèi)容都被認(rèn)為是注釋?zhuān)栽跁?shū)寫(xiě)特別是修改源程序時(shí)特別要注意,有時(shí)無(wú)意之中刪掉一個(gè)“*/”,結(jié)果,從這里開(kāi)始一直要遇到下一個(gè)“*/”中的全部?jī)?nèi)容都被認(rèn)為是注釋了。原本好好的一個(gè)程序,編譯已過(guò)通過(guò)了,稍作修改,一下出現(xiàn)了幾十甚至上百個(gè)錯(cuò)誤,初學(xué)C的人往往對(duì)此深感頭痛,這時(shí)就要檢查一下,是不是有這樣的情況,如果有的話,趕緊把這個(gè)“*/”補(bǔ)上。

  特別地,Keil C也支持C++風(fēng)格的注釋?zhuān)褪怯谩?/”引導(dǎo)的后面的語(yǔ)句是注釋?zhuān)?BR>
P1_0=!P1_0; //取反P1.0

  這種風(fēng)格的注釋?zhuān)粚?duì)本行有效,所以不會(huì)出現(xiàn)上面的問(wèn)題,而且書(shū)寫(xiě)比較方便,所以在只需要一行注釋的時(shí)候,我們往往采用這種格式。但要注意,只有Keil C支持這種格式,早期的Franklin C以及PC機(jī)上用的TC都不支持這種格式的注釋?zhuān)蒙线@種注釋?zhuān)幾g時(shí)通不過(guò),會(huì)報(bào)告編譯錯(cuò)誤。

  • 上一篇: 分支程序設(shè)計(jì)
  • 下一篇: 程序的編譯及調(diào)試
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1