程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ #define預處理指令特點評比

C++ #define預處理指令特點評比

編輯:C++入門知識

C++編程語言應用方式靈活,它的出現,給程序員帶來了很多幫助。那麼,同其他編程語言相比它又具有哪些特點呢?我們先來從C++ #define預處理指令的特點看起,通過它來和其他語言進行對比。

C++ #define預處理指令定義所謂的符號常量,這種常量會被直接編譯到二進制代碼中去。在這種情況下,它與用const定義的常值變量的效果是基本類似。的,

但#define還有一個作用,就是改變編譯器行為,例如根據它決定是否要編譯某句代碼

在很多C++源文件中都會有下面這樣的關於C++ #define預處理指令的代碼

  1. #if !defined(AFX_MAINFRM_H__0EFEA8A4_112C_4528_
    B7A8_761F1B02C20C__INCLUDED_) //如果沒有定義  
  2. #define AFX_MAINFRM_H__0EFEA8A4_112C_4528_B7A8_
    761F1B02C20C__INCLUDED_ //那麼就定義   
  3. #if _MSC_VER > 1000 //如果某個符號常量大於1000  
  4. #pragma once  
  5. #endif // _MSC_VER > 1000  

那麼,這個行為在.NET裡面是怎麼表現的呢?

  • C++單向鏈表實現代碼解讀
  • C++ void基礎概念講述
  • C++ void使用規則總結概覽
  • C++模擬event關鍵字具體實現方案
  • C++二維數組初始化相關應用技巧分享

1。 C#中繼承了#define作為編譯指令的作用。

#define DEBUG

注意】在C#中,不可以給定義的符號賦值,例如下面的語句是無效的

#define DEBUG=TRUE

也就是說,#define只需要定義即可,而不要也沒有必要)指定這個符號的值

後續代碼中,也是用#if這樣的語法進行判斷某個符號是否被定義。

2. VB.NET也有類似的實現,但它不使用#define關鍵字,而是用#const關鍵字

  1. #Const MINI = 1   
  2. #Const VERSION = 1.0   
  3. Const MINI As String = "4"   
  4. #Region "這是一個代碼塊"   
  5. Sub Main()   
  6. #If MINI = 1 Then   
  7. Console.WriteLine("Hello.world")   
  8. #End If   
  9. End Sub   
  10. #End Region 

以上就是C++ #define預處理指令與其他語言中不同之處的介紹。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved