資源簡介
操作系統(tǒng)實驗指導書,一個 nesC應用程序有三個部份。:一連串的 C 聲明和定義,一組接口類型,和一組組件。nesC 應用程序命名環(huán)境構造如下:
最外層的全局命名環(huán)境,包含三個命名域: 一個 C 變量,一個用于C聲明和定義的C 標簽命名域,和一個用于組件和接口類型的組件和接口類型命名域。
通常,C聲明和定義可以在全局命名環(huán)境內(nèi)部引入自己的嵌套命名域(用于函數(shù)聲明和定義的函數(shù)內(nèi)部代碼段,等等)。
每個接口類型引入一個命名域,用于保存接口的指令或事件。這種命名域是嵌套于全局命名環(huán)境的,所以指令和事件定義能影響全局命名環(huán)境中的C類型和標簽定義。
每個組件引入二個新命名域。規(guī)格命名域,嵌套于全局命名環(huán)境,包含一變量命名域用于存放組件規(guī)格元素。實現(xiàn)命名域, 嵌套于規(guī)格命名域,包含一個變量和一個標簽命名域。
對于結構,作用范圍變量命名域包含組件用以引用其包含組件的名字 (7.1節(jié)). 對于模塊,作用范圍保存作業(yè),以及模塊體中的C聲明和定義。這些聲明,及其它可能引入自己的嵌套在作用范圍內(nèi)的命名域 (比如函數(shù)體,代碼段等等). 由于這種命名域的嵌套結構,模塊中的代碼可以訪問全局命名環(huán)境中的C聲明和定義,但是不能訪問其他組件中的任何聲明或定義.。
構成一個nesC應用程序的C聲明和定義,接口類型和組件由一個隨選的裝載程序決定。nesC 編譯器的輸入是一個單獨的組件K。nesC 編譯器首先裝載C文件 (第 9.1 節(jié)),然后裝載組件K(9.2節(jié))。 程序所有代碼的裝載是裝載這兩個文件的過程的一部分。nesC 編譯器假定所有對函數(shù),指令及事件的調(diào)用不以自然的屬性 (第 10.3 節(jié)) 都發(fā)生被裝載的代碼中(例如., 沒有對非自然的函數(shù) " 看不見的 " 調(diào)用)。
在裝載文件預處理的時候,nesC 定義NESC 符號,用于識別nesC 語言和編譯器版本的數(shù)字 XYZ。對于nesC , XYZ 至少為110。
裝載C 文件,nesC組件及接口類型的過程包括定位對應的資源文件。文件定位的機制不是本參考手冊中所要討論的。要詳細了解通用編譯器是如何作業(yè)的,請閱讀《the ncc man page.》
裝載 C文件X
如果 X 已經(jīng)被裝載,就不用再做什么。否則, 就要定位并預處理文件 X.h。C宏定義 ( 由 # define和 #undef) 的改變會影響到所有的后面的文件預處理。來自被預處理的文件X.h的 C聲明和定義會進入C全局命名環(huán)境,因此對所有的后來的 C文件加工,接口類型和組件是有影響的。
代碼片段和文件信息
- 上一篇:計算流體力學及其并行算法
- 下一篇:影像匹配-------相關系數(shù)法
評論
共有 條評論