利用巨集控制列印

2021-09-08 21:51:51 字數 793 閱讀 5961

利用巨集控制列印

在程式除錯時,我們經常需要輸出一些除錯資訊,當除錯完畢後,就不再需要使用了。那怎麼快速的在除錯狀態和發布狀態切換呢?通常我們使用預編譯加巨集定義來處理這個問題,例如:

#ifdef debug

除錯**

#endif

如果我們使用printf來顯示一些除錯資訊,那麼每個地方都加上#ifdef和#endif就很麻煩了。我們可以定義乙個dbgprintf的函 數來專門處理這些事情,只在dbgprintf函式內放上#ifdef和#endif就行了。但是這樣**在執行時,還是有呼叫一次函式的,浪費了時間。 那麼可不可以利用巨集定義,實現完全沒有編譯**產生的巨集呢?

可以嘗試下面的巨集**:

#ifdef debug

#define dbgprintf printf

#else

#define dbgprintf /\

/dbgprintf

#endif

如果debug已經定義了,那麼不用說,當然是用printf去代替dbgprintf了。

下面只分析debug未定義的情形,這個巨集定義 實際上是將「dbgprintf」定義成了「//dbgprintf」,由於續行符的作用,#define定義時不會發現注釋符「//」,但是在展開到代 碼之後,就成了注釋符「//」了,也就是說,如果你原來的**是dbgprintf("%d",x);,經過這個巨集展開後成了 //dbgprintf("%d",x);,相當於自動在前面加了注釋符「//」。要注意的是,續行符後面的「/」一定要頂格寫,否則就不是「//」了。 另外,這個巨集只能單獨一行使用,因為它將該行後面的**都注釋掉了。

利用CSS控制列印

放在這裡,算是乙個備份 每頁都有的表頭 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 每頁都有...

利用CSS控制列印

利用css控制列印 放在這裡,算是乙個備份 每頁都有的表頭 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 內容 ...

linux C下 利用巨集函式列印除錯資訊

這個 裡面 把字串根據指定的分割符可以拆分,合併 主要是運用了乙個巨集來列印除錯資訊 函式除錯好以後可以注釋掉此行使,程式列印除錯資訊的 不編譯進去 line 在源 中插入當前源 行號 file 在原始檔中插入當前源檔名 date 在原始檔中插入當前的編譯日期 time 在原始檔中插入當前編譯時間 ...