Q
什麼是用C
1
A
回答
7
它允許從它們的部分構造標識符。例如:
#define CLASS_NAME(name) CLASS__ ## name
會將CLASS_NAME(alpha)
擴大爲CLASS__alpha
。它被廣泛用於boost預處理器庫所使用的技巧中,例如。
#define IF0(a, b) b
#define IF1(a, b) a
#define IF(cond, a, b) IF ## cond(a, b)
這將擴大到IF(0, a, b)
和a
對IF(1, a, b)
b
。另外,有時它用於生成結構和函數名稱(類似於C++模板)。
0
我不確定你用「##」預處理器表示什麼。
C有一個預處理器用於在編譯時擴展宏之前的。這是源代碼的第一遍。有它用於幾個不同的事情:
- 包括其他源/頭文件(
#include
) - 有條件地編譯代碼(
#ifdef
等) - 擴展宏(
#define
)- 方便常量
- 簡單功能
但是,請注意,這不是真的「C」(雖然是規範的一部分),並且如果出錯,可能會導致頭痛。我相信新語言不會這樣做。
+0
嗨達仁jpalecek的答案是我所期待的。感謝您的高舉。 – Hemanth 2010-09-09 06:14:23
相關問題
- 1. 什麼是用C#
- 2. 什麼是用C
- 3. C++:什麼是
- 4. 什麼是C++
- 5. 什麼是C#
- 6. 什麼是C#
- 7. 什麼是「通用C」?
- 8. 什麼是包括用C
- 9. 什麼是'〜'用於C++?
- 10. C++,什麼是:=用於?
- 11. 什麼是讓用C#
- 12. 什麼是SDK? (C++)
- 13. 是什麼:: *在C++
- 14. 什麼是C++`unsigned`?
- 15. 是什麼在C#
- 16. 什麼是在C#
- 17. C++什麼是「 - >」?
- 18. C++什麼是LPDWORD?
- 19. C++中是什麼?
- 20. C++:什麼是:: for?
- 21. 什麼是XMLNodeType - C#?
- 22. 什麼是**在C++
- 23. C++:什麼是流
- 24. 是什麼在C#
- 25. 什麼是&&在C++
- 26. 這是什麼? '[C]: ?'
- 27. C++:什麼是Mat3f?
- 28. 什麼是pro * c?
- 29. 什麼是在C++
- 30. C中'##'是什麼?
重複http://stackoverflow.com/questions/1489932/c-preprocessor-and-concatenation – codaddict 2010-09-03 12:29:39