可能重複:
Macro expansion in C++
What is the purpose of the ## operator in C++, and what is it called?什麼是 「##」 的符號意味着在C++
什麼是 「##」 的符號意味着在C++?我在閱讀某人的源代碼時遇到了這個問題。更具體地說,這個陳述意味着什麼:
if (v > ## = 0.1 * threshold)
可能重複:
Macro expansion in C++
What is the purpose of the ## operator in C++, and what is it called?什麼是 「##」 的符號意味着在C++
什麼是 「##」 的符號意味着在C++?我在閱讀某人的源代碼時遇到了這個問題。更具體地說,這個陳述意味着什麼:
if (v > ## = 0.1 * threshold)
在#define
宏,##
是一個預處理記號,這表示向周邊兩個東西粘在一起。因此,假如你#define
內看到了這一點,它是寫
if (v >= 0.1 * threshold)
如果你已經替代內容要麼>
或=
,這不是很奇怪這樣一個非常奇怪的方式。只是一個有點奇怪的技巧。
只有當代碼是宏定義的一部分時。在這個問題中沒有證據。 –
([它必須是宏定義的一部分](http://www.ideone.com/BeAbn)。) –
@Tomalak:是的。將編輯。 – aschepler
這意味着什麼。這是一個錯誤。
是否確定##
之後的代碼不是註釋,並且在下一個隨後的行中沒有正確地繼續執行條件?
或者,您粘貼的代碼可能是構成宏定義的一行的一部分(但您未顯示任何證據,因此我不會在此回答該問題的其他問題)。
(你看背景下這樣的問題事項?如何)
##
告訴cpp
將它們之前和之後的標記粘貼在一起。在這種情況下,我不得不猜測出於某種原因,程序員需要避免擁有一個實際的>=
標記,以避免混淆其他預處理器(文檔生成器或其他),因此cpp
從其組件中組裝>=
。
我以前看過這個..它是重複 – 2011-07-11 01:07:43
@ 0A0D:我可以把那在我的牆上。 –
@Tomalak::) Google不友好於## ..很難搜索這一個 – 2011-07-11 01:11:06