宏定義中傳入空格
定義宏的值字符串
包含空格會被理解爲兩個宏
的
解決 :把值字符串
裝換爲ASCII碼
例如:
DEFINES += _END_TIME=\"\\\"2018-10-05 10:35:00\\\"\"
DEFINES += _END_TIME_ASCII=\"\\\"\u0032\u0030\u0031\u0038\u002d\u0031\u0030\u002d\u0030\u0035\u0020\u0031\u0030\u003a\u0033\u0035\u003a\u0030\u0030\\\"\"
編譯輸出:
-D_END_TIME="\"2018-10-05 -D10:35:00\""
-D_END_TIME_ASCII="\"\u0032\u0030\u0031\u0038\u002d\u0031\u0030\u002d\u0030\u0035\u0020\u0031\u0030\u003a\u0033\u0035\u003a\u0030\u0030\""
_END_TIME
編譯時被解析爲 -D_END_TIME="\"2018-10-05
和 -D10:35:00\""
兩個宏
_END_TIME_ASCII
被正確解析
源碼使用:
//-----------
qDebug()<<_END_TIME; //-- 輸出 2018-10-05 -D10:35:00
qDebug()<<_END_TIME_ASCII; //-- 輸出 2018-10-05 10:35:00