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 对这种不推荐使用的语法显示警告?

4

2 回答 2

7

我假设 CodeBlocks 正在使用 gcc 进行编译。您可以通过添加编译器标志来启用警告-Wold-style-cast。您可能需要在 CodeBlocks 中四处寻找才能确定该标志的放置位置。您还可以使用 启用更多警告-Wall

于 2013-01-16T11:23:08.693 回答
6

您还可以在 Code::Blocks 中启用这些警告。您需要为此添加编译器标志 -Wold-style-cast。这就是我在 Code::Blocks 中的做法:

  • 转到顶部菜单中的项目
  • 选择构建选项
  • 编译器设置选项卡(默认选中)
  • 其他选项选项卡
  • 在文本字段中输入:-Wold-style-cast

然后你会用你的代码得到这样的输出:

在此处输入图像描述

于 2013-01-16T11:44:48.843 回答