我保持一個跨平臺的C代碼庫和一些平臺(的Xcode 4,紅帽衍生像Fedora和Mageia發行版),我得到以下編譯器錯誤:如何抑制陰影「索引」警告?
warning: declaration of 'index' shadows a global declaration
基於this answer,據我所知,這是因爲一些基於BSD的C實現定義了string.h
中的非標準index
函數,這意味着無論何時聲明index
變量,都會顯示此警告。我向你保證,我沒有任何全局的index
變量。
我知道我可以避免命名任何東西index
但它是一個語義上有用的名稱,所以我最終使用它遍佈整個地方。我知道我也可以抑制這個警告,例如在GCC中使用-Wno-shadow
,但我寧願不全局地禁用其他有用的編譯器警告。
那麼我該如何解決這個問題呢?也就是說,在某種程度上可以檢測到平臺是否具有index
函數並僅在那裏禁用警告,或者如果它存在,我該如何重新定義它?
自從Xcode 5我相信我不再在OSX中獲得它。我也沒有在基於Debian的Linux中看到它。 – congusbongus