C++中assert宏(2-2)

3 關閉assert()

是否定義了預處理器變量NDEBUG,控制了assert宏的開關。默認情況下,沒有定義預處理器變量NDEBUG,此時assert宏的處於開啓狀態,即該宏起作用,當定義了NDEBUG後,assert宏的處於關閉狀態,即該宏將不再起作用。

可以通過添加代碼、修改解決方案配置和添加預處理器定義三種方式關閉assert。

3.1 添加代碼

在“2.1 頭文件”中提到,assert宏在assert.h/cassert頭文件中定義。在包含該頭文件的代碼之前,使用如下代碼定義NDEBUG。

#define NDEBUG

一般把該行代碼放在stdafx.h中即可。

3.2 修改解決方案配置

以VS2015爲例,選擇VS2015的菜單欄“生成->配置管理器”,在“配置管理器”對話框中“活動解決方案配置”選擇爲“Release”,如圖2所示。

 

圖2 修改解決方案配置

3.3 添加預處理器定義

在VS2015中選擇菜單欄“項目->XXX屬性”,之後在彈出的“XXX屬性頁”對話框中,選擇左側的“配置屬性->C/C++->預處理器”,接下來在右側的“預處理器定義”中添加NDEBUG的定義,如圖3所示。

 

圖3 添加預處理器定義

需要注意的是,添加的NDEBUG前面有分號。

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