我目前正試圖根據編譯器標誌定義一個函數。如果設置了TRACE標誌,那麼我想定義一個宏來將信息傳遞給跟蹤組件。宏參數列表中的指針
#define TRACERPTR(Reporter * pReporter, traceComponent eComponent, traceLevel eLevel, string sFormat, formatArgs...) \
if (pReporter != NULL) { pReporter->trace(eComponent, eLevel, sFormat, ##formatArgs); }
Reporter是一個類,它定義在這個宏的同一個.h文件中。我需要傳遞一個記者對象的指針,然後用它來調用追蹤函數。
但是,我得到一個編譯錯誤:
error: "*" may not appear in macro parameter list
我很好奇會發生什麼,如果我只是刪除了「*」 - 這會導致錯誤「宏觀參數必須用逗號分隔」。
任何想法,我在做什麼錯在這裏?
你的知識是正確的,所以是您的解決方案。 –
首先回應,你的知識是正確的。謝謝。 – BSchlinker
@BSchlinker:不客氣。 – JAB