1. 程式人生 > >解決巨集定義與函式名衝突的問題

解決巨集定義與函式名衝突的問題

畢竟典型的一個問題是<windows.h>裡面的max和min的巨集定義與
std::numeric_limits<std::streamsize>::max()和
std::numeric_limits<std::streamsize>::min()

兩個函式定義相互衝突。
通常的情況是,如果包含了標頭檔案windows.h,那麼編譯器會率先把它當成巨集,從而報錯,
解決的辦法有這麼幾個:
方法一:
用括號把呼叫函式的地方括起來,這個是用的比較多的方法,也是解決的比較好的方法
例如:
象這樣用函式
(std::numeric_limits<std::streamsize>::max)()
方法二:
就是不包含巨集定義的標頭檔案
方法三:
取消掉對巨集的定義
#undef max