我想從__FILE__
,__FUNCTION__
和__LINE__
預定義宏創建單個字符串。用於預定義宏的Concat
#define LOG_LINE __FILE__ " " __FUNCTION__ " " __LINE__
這可能會不工作,因爲編譯器CONCAT不整數這__LINE__
是工作。
#define LOG_LINE __FILE__ __FUNCTION__
也不起作用,因爲:
error: expected ';' before '__FUNCTION__'
如何做到這一點有 std::cout << LOG_LINE
這將擴大到例如main.cpp main 8
?
解決方案: #define LOG_LINE __FILE__ << " " << __FUNCTION__
不滿足我,因爲有時我想用它作爲字符串(與sstream的大宏也是無效的解決方案;)。
There's沒有整數的概念在'#define'。根本沒有類型。看看'#'和## ## – deviantfan 2015-03-31 07:12:31
是的,沒有整數的概念。但他們是在後。並且編譯器不用int連接字符串,而是用字符串yes連接字符串。爲什麼要看#和##?要得到字符串「'__FILE ____ LINE__'」:)? – senfen 2015-03-31 07:44:14