在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機C語言中.c文件和.h文件的關聯(lián)

            51單片機C語言中.c文件和.h文件的關聯(lián)

            作者: 時間:2016-11-23 來源:網絡 收藏
            1)h文件作用

            1 方便開發(fā):包含一些文件需要的共同的常量,結構,類型定義,函數(shù),變量申明;
            2 提供接口:對一個軟件包來說可以提供一個給外界的接口(例如: stdio.h)。

            本文引用地址:http://www.biyoush.com/article/201611/320244.htm

            2)h文件里應該有什么
            常量,結構,類型定義,函數(shù),變量申明。

            3)h文件不應該有什么
            變量定義, 函數(shù)定義。

            4)extern問題
            對于變量需要extern;
            對于函數(shù)不需要因為函數(shù)的缺省狀態(tài)是extern的.如果一個函數(shù)要改變?yōu)橹辉谖募瓤梢?加static。

            5)include包含問題
            雖然申明和類型定義可以重復,不過推薦使用條件編譯。

            #ifndef _FILENAME_H,

            #define _FILENAME_H

            ……

            #endif

            6)應該在那兒包含h文件
            在需要的地方.比如某個提供接口的h文件僅僅被1.c文件需要,那么就在1.c文件里包含。


            編寫的程序一般會有.H文件和相對應的.C文件,.H文件是聲明所用,.C文件是其函數(shù)實現(xiàn)部分。在調用時只要包含.H文件即可,我們沒有聽說過#i nclude "delay.c"這類的程序,同時也不提倡使用這個形式。


            在delay.h文件中: //對調用的函數(shù)聲明
            #ifndef __DELAY_H__

            #define __DELAY_H__


            extern void Delayms(unsigned int n);

            #endif


            在delay.c文件中: //函數(shù)實現(xiàn)部分

            #i nclude

            //for crystal 11.0592M

            void Delayms(unsigned int n)

            {

            unsigned int i,j;

            for(j=n;j>0;j--)

            for(i=112;i>0;i--);

            }

            在主程序main.c中

            #i nclude //在主程序包含.h文件,不能包含.c文件

            ……


            上述方法仍然要求每建立一個工程就需要把對應的頭文件復制到工程的文件夾里,這樣看來仍然是比較麻煩的,這時還有另外一中方法就是將做好的頭文件放在一個文件夾中,然后將這個文件夾整體拷貝到..KEILC51INC下面,以后若需要使用某個頭文件,就如使用KEIL自帶的頭文件一樣方便了,在主函數(shù)mani()之前有一句#i nclude 就可以在main()中使用其中的函數(shù)了。


            參考資料:

            1)h文件里變量(函數(shù))申明用不用extern

            http://www.unixresources.net/linux/clf/program/archive/00/00/33/65/336569.html

            2).c文件和.h文件的概念與聯(lián)系

            http://www.vckbase.com/document/viewdoc/?id=1607

            3)過馬路,左右看

            http://www.vckbase.com/document/viewdoc/?id=1606

            4).c 和 .h文件的不同

            http://hi.baidu.com/mfantastic/blog/item/d6fddd39793494f73a87ce0c.html

            5)C51包含頭文件方法

            http://blog.ednchina.com/eleclike/52862/message.aspx

            4).c 和 .h文件的不同

            http://hi.baidu.com/mfantastic/blog/item/d6fddd39793494f73a87ce0c.html

            模塊劃分的"劃"是規(guī)劃的意思,意指怎樣合理的將一個很大的軟件劃分為一系列功能獨立的部分合作完成系統(tǒng)的需求。C語言作為一種結構化的程序設計語言,在模塊的劃分上主要依據功能(依功能進行劃分在面向對象設計中成為一個錯誤,牛頓定律遇到了相對論),C語言模塊化程序設計需理解如下概念:

            (1)模塊即是一個.c文件和一個.h文件的結合,頭文件(.h)中是對于該模塊接口的聲明;

            (2)某模塊提供給其它模塊調用的外部函數(shù)及數(shù)據需在.h中文件中冠以extern關鍵字聲明;

            (3)模塊內的函數(shù)和全局變量需在.c文件開頭冠以static關鍵字聲明;

            (4)永遠不要在.h文件中定義變量!定義變量和聲明變量的區(qū)別在于定義會產生內存分配的操作,是匯編階段的概念;而聲明則只是告訴包含該聲明的模塊在連接階段從其它模塊尋找外部函數(shù)和變量。如:



            int a = 5;

            #include "module1.h"

            #include "module1.h"

            #include "module1.h"

              以上程序的結果是在模塊1、2、3中都定義了整型變量a,a在不同的模塊中對應不同的地址單元,這個世界上從來不需要這樣的程序。正確的做法是:



            extern int a;

            #include "module1.h" int a = 5;

            #include "module1.h"

            #include "module1.h"

            這樣如果模塊1、2、3操作a的話,對應的是同一片內存單元。



            關鍵詞: 51單片機C語

            評論


            技術專區(qū)

            關閉