2013-01-16 39 views
4

我使用Code::Blocks來學習C++。請看下面的代碼:C++中棄用的強制轉換

Ç

#include <iostream> 
using namespace std; 

int main(int argc, char** argv) 
{ 
    const int i = 0; 
    int* j = (int*)&i; 
} 

我已經在上面的程序中使用C已被棄用++(如果我對這個正確的),但隨後C中的演員Code :: Blocks IDE不會顯示此代碼的任何警告。我知道C++支持顯式類型轉換,如const_cast,static_cast等。

我的問題是:互聯網上是否有免費的IDE可用,顯示這種不贊成使用的語法的警告?

+0

我敢肯定,你可以在設置 – stefan

+0

開關上的某個地方一些額外的警告標誌,通常不是IDE(除非它有一個聰明的代碼分析器插入),它會發出警告,這是編譯器的工作。如果您對設計/編輯時間檢查感興趣,Visual Studio 2012產品可以很好地完成這項工作。 Express版是免費的。 –

+4

C風格的演員陣容還沒有被棄用。 –

回答

6

您還可以在Code :: Blocks中啓用這些警告。您需要爲此添加編譯器標誌-Wold-style-cast。這是我做到了在代碼::塊:

  • 轉至頂部菜單
  • 項目選擇構建選項
  • 編譯器設置選項卡(默認選擇)
  • 其他選項選項卡
  • 在文本字段中輸入:-WOLD式鑄造

然後你會得到如下所示的結果與您的代碼:

enter image description here

+0

謝謝。這樣可行。 –

7

我假設CodeBlocks使用gcc進行編譯。您可以通過添加編譯器標誌-Wold-style-cast來啓用警告。您可能需要在CodeBlocks中找出放置該標誌的位置。您還可以使用-Wall啓用更多警告。

+0

是的,我使用的是Mingw gcc-4.3.2編譯器。 –

+6

請注意,儘管名稱不同,'-Wall'不包含'-Wold-style-cast'! –

+0

還是謝謝你。還有,' - 牆不包括'-Wold-style-cast'。但是,我可以同時包含'-Wall'和'-Wold-style-cast'嗎? –