中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
FreeBASIC學(xué)習(xí)筆記-包含指令

9.1 文件包含

        FreeBASIC文件包含有三個指令:#Include,句包含另一個源文件的內(nèi)容;#IncLib,包含一個庫文件;#libpath,將庫搜索路徑添加到鏈接器的搜索路徑列表中。

        #Include在其指令出現(xiàn)的位置插入另一個文件的源代碼。這具有從所包含的文件編譯源代碼的效果,就好像它是包含它的源文件的一部分。一旦編譯器到達(dá)了include文件的末尾,原始源文件就會繼續(xù)編譯。這使得文件可以根據(jù)功能分成多個文件,在由多個模塊組成的程序中具有聲明的單個文件是有用的。您可以在include文件中包含文件,這樣可以避免將原始文件包含在其中,只有在編譯后才會產(chǎn)生結(jié)果。通常,include文件的擴(kuò)展名為.bi,主要用于聲明庫的過程或函數(shù)或變量,但任何有效的源代碼都可能存在于包含的文件中。

       Once說明符告訴編譯器只包含該文件一次,即使它被源代碼包含多次。元命令$Include是#Include的替代形式,主要是為了兼容QuickBASIC存在的。正常使用建議用#include。

        根據(jù)需要,編譯器將自動轉(zhuǎn)換路徑分隔符('/'和'\'),以正確加載文件。文件名稱可以是絕對路徑或相對路徑。對于相對路徑,或根本沒有路徑,include文件按以下順序進(jìn)行搜索:1、相對于源文件的目錄;2、相對于當(dāng)前工作目錄;3、相對于使用-i命令行選項指定的添加目;4、FreeBASIC安裝的包含文件夾(FreeBASIC\inc),其中FreeBASIC是fbc可執(zhí)行文件所在的文件夾)

語法:


例如:FireFly默認(rèn)引用的文件


        #IncLib在鏈接過程中包含一個庫,就像用戶在命令行中指定了-l libname一樣。FreeBASIC的庫文件以.a為后綴,例如:包含一個libmystuff.a的庫文件可以用語句#inclib "mystuff" 來實現(xiàn)。
        #libpath將庫搜索路徑添加到鏈接器的搜索路徑列表中,就像在命令行中使用'-p'選項指定的一樣。路徑與調(diào)用fbc的工作目錄相對,而不是相對于源文件的目錄。如果路徑不存在并且編譯和鏈接將繼續(xù),則不會生成錯誤。例如搜索lib目錄下的外部庫則使用#libpath “l(fā)ib”。
9.2 宏定義
        FreeBASIC的宏定義有兩種:#Define和#Macro。#Define允許聲明基于文本的預(yù)處理器宏。一旦編譯器看到#Define定義的標(biāo)識符,則用它body 替換該標(biāo)識符。body 可以為空。替換是遞歸完成的,直到?jīng)]有更多的標(biāo)識符可以替換,編譯器可以繼續(xù)分析生成的代碼。#UnDef用于取消定義先前使用#Define定義的標(biāo)識符。
        Parameters 將define轉(zhuǎn)換為類似函數(shù)的宏,允許將文本參數(shù)傳遞給宏。body 中的任何參數(shù)名稱的出現(xiàn)將在擴(kuò)展期間由給定的參數(shù)文本替換。
        注意:在類似函數(shù)的宏聲明中,標(biāo)識符(Identifier)之后必須是括號“(”,之間不能有任何空格,否則編譯器會將其視為body 的一部分。
        如果在模塊級別定義,定義在整個模塊中是可見的。如果在具有范圍(Sub,F(xiàn)or..Next,While..Wend,Do..Loop,Scope..End Scope等)的復(fù)合語句中定義了標(biāo)識符 ,則標(biāo)識符 定義僅在該范圍內(nèi)可見。另一方面,命名空間對define的可見性沒有任何影響??梢允褂?pp編譯器選項檢查宏擴(kuò)展的結(jié)果。#Define通常用于聲明常量,Const語句則是一種更為安全的聲明方法。
語法:


例如:


        #Macro其實就是#Define的多行形式,語法如下:


例如:


9.3 條件編譯

        條件編譯語句即是有條件的在編譯時選擇一定的語句參與編譯,F(xiàn)reeBASIC的條件編譯語句有#if…#elseif…#else…#endif(這里可以是一個整體,也可以單獨分開,跟if..else語句的用法相同,只是一個用于編譯時,一個用于運行時)defined (symbol_name ) 用來判斷給定符號名稱是否定義,如果符號已被定義,defined預(yù)處理函數(shù)將返回真(True)如果符號未知,則返回假(False)。此語句通常配合#if條件語句來判斷。

語法:


例如:


        #IfDef和#IfnDef用來判斷標(biāo)識符(symbol)是否定義,必須用#EndIf來結(jié)束。通常我們用#IfnDef來判斷頭文件是否多次引用。

語法:#IfDef


例如:


語法:#ifnDef


例如:


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C語言 條件編譯詳解
嵌入式C語言編程規(guī)范(個人規(guī)約)
C語言中的宏定義
#define、const、typedef的差別
簡單的c++程序
手把手教你如何優(yōu)化C語言程序
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服