程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> #與 ##的使用含義與區別

#與 ##的使用含義與區別

編輯:C#入門知識

#與 ##的使用含義與區別


 簡單地說,#連接字符串,##連接兩個參數                    在程序中擴展#define定義符號和宏時,需要涉及幾個步驟。 1、在調用宏時,首先對參數進行檢查,看看是否包含任何由#define定義的符號。如果是,它們首先被替換。 2、替換文本隨後被插入到程序中原來文本的位置。對於宏,參數名被他們的值替換。 3、最後,再次對結果文件進行掃描,看看它是否包含任何由#define定義的符號。如果是,就重復上述處理過程。              宏參數和#define定義可以包含其他#define定義的符號。但是,宏不可以出現遞歸。                  ## 連接符號由兩個#組成,其功能是在帶參數的宏定義中將兩個子串(token)聯接起來,從而形成一個新的子串。但它不可以是第一個或者最後一個子串。所謂的子串(token)就是指編譯器能夠識別的最小語法單元。 它可以拼接符號(Token-pasting operator)。 MSDN上有個例子: #define paster( n ) printf( "token"#n" = %d\n", token##n ) int token9 = 100; 再調用  paster(9);宏展開後token##n直接合並變成了token9。整個語句變成了 printf( "token""9"" = %d", token9 ); 在C語言中字符串中的二個相連的雙引號會被自動忽略,於是上句等同於 printf("token9 = %d", token9);。 即輸出token9 = 100    

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