宏定義中傳入空格

宏定義中傳入空格

定義宏的值字符串包含空格會被理解爲兩個宏

解決 :把值字符串裝換爲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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章