我正在使用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 :(得分:7)
我假设CodeBlocks正在使用gcc进行编译。您可以通过添加编译器标志-Wold-style-cast
来启用警告。你可能不得不在CodeBlocks中找到解决方法,找出放置该标志的位置。您还可以使用-Wall
启用更多警告。
答案 1 :(得分:6)
您还可以在Code :: Blocks中启用这些警告。您需要为此添加编译器标志-Wold-style-cast。这就是我在Code :: Blocks中所做的:
然后你会得到这样的输出: