「符號」與「加載符號列表」中的含義是什麼?或者如以下MSDN示例所示:「符號」與「加載符號列表」中的含義是什麼?
「#if允許您開始一個條件指令,測試一個或多個符號以查看它們是否評估爲真。」
這些符號在哪裏定義和聲明?
「符號」與「加載符號列表」中的含義是什麼?或者如以下MSDN示例所示:「符號」與「加載符號列表」中的含義是什麼?
「#if允許您開始一個條件指令,測試一個或多個符號以查看它們是否評估爲真。」
這些符號在哪裏定義和聲明?
對於「加載符號列表」,符號是在編程語言的語法的定義的元素。局部變量名稱是一個符號。類類型標識符是一個符號。 PDB文件包含符號信息,因此調試器可以知道事情的存在以及原始源代碼中的名稱。
對於#if,「符號」表示預處理器(C++)或條件定義(C#)符號。 C#沒有預處理器階段,所以這些術語可能會有點混亂。 #define WIN32
你測試一個符號是否使用#如果定義:#if WIN32
< ...>#endif
預處理符號是無類型的,一般不與相交類型和
你語言中使用#define定義條件符號標識符實際上是程序代碼的一部分。預處理器位於源代碼的「上方」。預編譯符號不存在於編譯後的輸出中,並且在運行時不佔用任何內存空間。從邏輯上講,編譯器從不會看到預處理器的語法 - 在文本到達編譯器之前將其刪除。
「符號」在計算機科學中是一個相當廣泛的(和超負荷/模糊的)術語。維基百科上有一篇文章:Identifier/Symbol/Token。
但是,在你的情況,你正在尋找預處理器(預編譯器)指令,這些指令會影響編譯的結果。
在#if
的情況下,「符號」只是一個變量;一個這樣的「符號」是DEBUG
其可用於這樣的:
#if DEBUG
如果代碼被下調試模式編譯「調試」符號將評估爲true
- 因此在這些情況下#if
塊中的代碼將被髮送給編譯器。
您也可以使用#define
創建一個符號,並且(或多或少)將其值設置爲true
。因此,未定義的符號評估爲false
,而定義的符號評估爲true
您也可以添加自己的符號以用於代碼或移除內置符號。如果您使用Visual Studio,請在您的項目的「屬性」下執行此操作,然後在「構建」 如果您不使用Visual Studio,我會懷疑在編譯程序時將這些符號添加到命令行中。
/尤
'PDF文件包含符號信息...「我想你的意思是'PDB文件...' – 2010-07-22 01:01:28
Doh!很好的接收。固定。謝謝。 – dthorpe 2010-07-22 16:49:27