這是一位網友的問題,原問題見http://www.ptt.cc/bbs/C_and_CPP/M.1351841869.A.BAF.html。本部落格之前也稍微碰過這個主題,不過之前的重點在於腦筋急轉彎式的模擬 __VA_ARGS__ 功能,實用性是另一回事。

在開始討論各種作法可行性之前,這裡先宣導一項原則:應該要讓正常輸出與非常態輸出分流,更精確的說,給使用者看的輸出應該要和給開發者看的輸出分流。例如使用 stdout 作為正常輸出時,就不應該也用 stdout 作為非常態輸出,而是改用 stderr 或檔案。實戰中非常態輸出的 sink 很多樣,這裡就不多說了。即使不想多花心力去設計非常態輸出機制,使用基本的 stderr 並不會比用 stdout 多費功夫,好處卻是立即可見,可謂有利而無害。

novus 發表在 痞客邦 PIXNET 留言(2) 人氣()