當前位置:首頁 » 編程軟體 » 什麼是編譯開關

什麼是編譯開關

發布時間: 2024-05-10 04:10:03

『壹』 c++有沒有什麼編譯開關

沒有,數組越界是語言特性。
堆棧大小這些不屬於語言本身,但可以在編譯參數里設置,但對於搞競賽的沒用.

『貳』 請問noip 的「編譯命令(不包含任何優化開關)」是什麼意思,望解答

意思就是
Pascal:fpc %s.pas
G++:g++ %s.cpp -o %s.exe
GCC:gcc %s.c -o %s.exe
無視Pascal文件里的開關

有的人編譯時喜歡開-o -o2 -o3,速度快點,但是noip不允許這個
而且-o2可以影響程序行為

『叄』 Pascal編譯開關。語法及作用。

網上查找保存的資料。供參考:

1)數據對齊(AlignData)
{$A+}或{$A-}
在{$A+}狀態下,將非字元按偶地址對齊存放,可以提高8086和80286存取數據的速度。不影響位元組變數、記錄域結構和數組元素。在{$A-}狀態下,將使用位元組對齊方式,數據可存放在奇地址或偶地址。


2)布爾運算(BooleanEvaluation)
{$B+}或{$B-}
在{$B+}狀態下,編譯器產生完全布爾表達式運算代碼。布爾表達式中的每個操作都確保被計算。既是整個表達式的結果以確定,還繼續運算其餘的表達式。
在{$B-}狀態下,編譯器產生短路布爾表達式運算代碼。接著從左到右運算,當整個表達式結果確定後,就停止運算。


3)調試信息(DebugInformation)
{$D+}或{$D-}
{$D+}產生調試信息,它在編譯程序或單元產生運行錯誤時,能自動定位引起錯誤的語句。


4)浮點模擬(Emulation)
{$E+}或{$E-}
{$E+}只是在8087協處理器不存在時,將連接運行庫以便對協處理器進行模擬。
{$N+,$E+}狀態編譯程序,系統將同8087模擬器連接,得到exe文件,不管有無8087,都可以在機器上進行IEEE標准754的二進制浮點運算。
{$N+,$E-}狀態下,只能在有8087時,才能進行IEEE標准754的二進制浮點運算。
8087模擬開關如果用在一個單元是無效的,它只能用於程序的編譯。


5)輸入輸出檢查(Input/OutputChecking)
{$I+}或{$I-}
$I指示控制是否自動產生對調用過程的結果進行檢查。


6)數字處理(NumbericProcessing)
{$N+}或{$N-}
{$N-}狀態,在機器上只能進行實數類型運算。在{$N+}狀態,在有8087協處理器或沒有用{$E+}指示對8087進行模擬,都可以對IEEE浮點類型進行運算。


7)范圍檢查(RangeChecking)
{$R+}或{$R-}
$R+進行邊界和范圍檢查


8)棧溢出檢查(StackOverflowChecking)
{$S+}或{$S-}
在{$S+}狀態下編譯,程序在每個過程或函數的開始生成一段代碼,用於檢查是否有足夠的棧空間供局部變數使用。若棧空間不夠,程序停止運行,並顯示運行錯誤。
在{$S+}狀態下這樣調用會導致系統崩潰。


9)變數串檢查(VarStringChecking)
{$V+}或{$V-}
在{$V+}狀態下,實行嚴格的類型檢查,要求形參、實參具有同一字元串類型。
在{$V+}狀態下,允許任意類型的字元串變數作為實參,甚至是一實參的最大長度不同於形參長度。
//以上內容照抄自網路,下面是原創的


10)復制文件中的內容(IncludeFile)
{$I}
格式:{$Iabc.inc}
作用就相當於abc.inc中所有的東西抄到這個位置。


12)隱藏控制台(GUIapplication)
{$APPTYPEGUI}
就是這樣,在程序的開頭加上,可以隱藏控制台。


13)擴大棧容量
{$M100000000,0,MaxLongint}
在使用上面的指令後,可以使用AnsiString類型。
{$M$4000,0,0}
在使用上面的命令後,再使用DOS單元。否則可能出現錯誤。


14)定義符號(Defineasymbol)
格式:{$define標示符}
對下面這些指令有用:


15)如果定義XXX,那麼……(ifdefineXXX...)
格式:{$ifdef符號標示符}
語句;
{$endif}
如果用$define定義了,那麼就會執行下面到$endif的語句。


16)ifdef的另一種用法(else...)
格式:{$ifdef符號標示符}
語句1;
{$else}
語句2;
{$endif}
若果定義了XXX就執行語句1,否則執行語句2。


17)取消定義
格式:{$undef標示符}
取消定義某個標示符,和$define搭配使用。

//以上是我自己研究或者總結的,下面是幫助文件原文:
Localcompilerswitches
cmdshortlongexplanation
$A$ALIGNAlignData.
A$ASMMODESelectassemblermode.
$B$.
Sa$C$.
$
d$DEFINEDefineasymbol.
$.
$.
$ERRORGenerateerrormessage.
$FUsefarornearfunctions.
$.
Sg$GOTOSupportGotoandLabel.
$H$LONGSTRINGSUseAnsiStrings.
$HINTGeneratehintmessage.
vh$HINTSEmithints
$IFStartconditionalcompilation.
$.
$.
$.
$INFOGenerateinfomessage.
Si$INLINEEnableinlinecodesupport.
Ci$I$IOCHECKSIncludeInput/Outputchecking.
$I$INCLUDEIncludele.
$I$INCLUDEIncludecompilerinfo.
$L$LINKLinkobjectle.
$LINKLIBLinktoalibrary.
$M$TYPEINFOGenerateRun-Timetypeinformation.
Sm$MACROEnablemacrosupport.
$
$MESSAGEGenerateinfomessage.
$MMXEnableIntelMMXsupport.
$NOTEGeneratenotemessage.
vn$NOTESEmitnotes.
A$.
$P$OPENSTRINGSUseopenstrings.
$.
$.
Co$Q$OVERFLOWCHECKSUseover
owchecking.
Cr$R$RANGECHECKSUserangechecking.
$.
XX$SMARTLINKUsesmartlinking.
St$.
$STOPGeneratefatalerrormessage.
$T$.
u$UNDEFUndeneasymbol.
$V$VARSTRINGCHECKSUsestrictvar-stringchecking.
$WAITWaitforenterkeypress.
$WARNINGGeneratewarningmessage.
$WARNINGSEmitwarnings.
$X$
$APPIDSetapplicationID(PalmOS)
$APPNAMESetapplicationname(PalmOS)
$(Windowsonly)
g$D$.
$DESCRIPTIONNotsupported.
$EEnableemulationofcoprocessor.
$GGenerate80286code.
Fi$.
$L$.
Fl$.
$M$MEMORYSpecifymemorysizes.
M$.
$NEnablenumericprocessing.
$OEnableoverlaycodegeneration.
Fo$.
Ct$SUsestackchecking
Fu$.
$VERSIONSetDLLversion(Windows)
$W$.
b$Y$.

『肆』 vc++使用編譯開關(編譯器選心)

打開工程屬性->C/C++->預處理指令->把你的編譯開關所用的關鍵字加入到預處理定義欄里。

見截圖。

『伍』 一個C++程序是由哪幾個部分構成的其中的每一部分起什麼作用

1、頭文件,每個程序都開頭一堆#include,#define符號,#pragma編譯開關
2、類型聲明和全局變數,用於全局聲明類、結構、枚舉的定義,也可以設置全局變數
3、函數,即程序執行的具體過程、順序、邏輯定義

『陸』 編譯開關{$IFDEF VCL}、{$IFNDEF DELPHI7} 中的vcl和delphi7在那裡定義的啊!!

編譯開關的定義可以在pas文件中用{$DEFINE VCL},
也可以在工程選項,Directories/Conditionals->Conditionals中添加.

熱點內容
取消網路訪問密碼 發布:2024-11-08 23:34:09 瀏覽:730
在我的世界伺服器中怎麼設置血月 發布:2024-11-08 23:30:07 瀏覽:630
安卓機如何設置自動錄音 發布:2024-11-08 23:27:56 瀏覽:310
怎麼打開加密壓縮包 發布:2024-11-08 23:26:43 瀏覽:721
安卓91視頻可以在哪裡下載 發布:2024-11-08 23:26:42 瀏覽:50
androidftp實現 發布:2024-11-08 23:26:36 瀏覽:381
上傳圖片相機 發布:2024-11-08 23:21:11 瀏覽:86
插入語句sql 發布:2024-11-08 23:16:18 瀏覽:773
噴丸編程 發布:2024-11-08 23:08:43 瀏覽:213
給資料庫表增加一列 發布:2024-11-08 23:08:21 瀏覽:961