閱讀c/c++原始碼時經常看到define語句中#和##,這裡記錄下其區別和用法。
先看如下**:
#include
// 測試不帶 # 號的效果
#define no_number_sign(x) x
// 測試乙個 # 號的效果
#define single_number_sign(x) #x
// 測試兩個 # 號的效果
#define double_number_sign(x, y) x##y
char wangying=
"hello world"
;int
main()
單個# :將後續的內容字串化。
雙個# :## 僅將兩內容連線在一起。
另外乙個例子:
#define paster( n ) printf( 「token " #n」 = %d\n ", token##n )所以paster(9);就是相當於 printf(「token 9 = %d\n」,token9);
sql語句中as的用法和作用
sql語句中as的用法和作用 最近做專案中,偶然發現在sql語句中出現了as這個詞,一直以來沒怎麼關注是什麼意思,畢竟影響不大,今天有空,就在網上查了一些資料,大概有了一些的了解 我們的sql語句在很多資料庫中都是通用的,比如像mysql資料庫 access資料庫.oracle資料庫.sqlite資...
Define 語句中的do while 0
經常在define語句中看到用do while 0 將乙個程式片段包起來,一直感覺很奇怪,經查詢,才發現這是在define語句使用中的乙個tricky的情況。define表達使用do while 0 的兩個例子 define list insert after listelm,elm,field d...
for語句中的 和
for int i 0 i 100 i 和for int i 0 i 100 i 是程式設計中常用的兩個語句,這兩個語句看似作用類似但實際上在使用中卻容易產生很多意想不到的問題 入下例 這段 是用歸併排序演算法對陣列進行排序,在merge函式中有三個for語句,如果使用 和使用 會嘗試完全不同的結果...