相关疑难解决方法(0)

用于启用详尽且详细的g ++警告的标志

通常在C下gcc,我将从以下一组警告标志开始(从多个来源痛苦地组装):

-Wall -Wextra -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast \
-Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Winline -Wundef \
-Wnested-externs -Wcast-qual -Wshadow -Wwrite-strings -Wno-unused-parameter \
-Wfloat-equal -pedantic -ansi
Run Code Online (Sandbox Code Playgroud)

我将使用这组警告构建(至少我的调试版本)并修复我可能做的所有事情(通常是一切),然后只删除标记,如果它们不相关或不可修复(几乎从不这样).有时,-Werror如果我必须在编译时离开,我也会添加.

我只是拿起C++(是的,我落后了15年),我想从右脚开始.

我的问题是:是否有人为C++预先编译了类似的完整警告标志集g++?(我知道其中很多都是一样的.)

c++ warnings g++

113
推荐指数
3
解决办法
4万
查看次数

C ++ / CLI等效于C#检查的关键字

C ++ / CLI中的托管代码是否可以在算术溢出时引发异常?C#具有checked关键字和全局项目标志来启用这些功能,但是我在C ++ / CLI中都找不到...

我的情况是我将C ++库包装在.NET中。有时,C ++本机代码会溢出。我当时/正在考虑将一些敏感的计算移至现有的C ++ / CLI包装器中,但这也许不可能吗?

c# c++ c++-cli overflow

3
推荐指数
1
解决办法
721
查看次数

返回时double变为舍入

如何在没有舍入的情况下返回双精度数:

int function() {
    double d = 5.894; 
    printf("d=%f\n", d);
    return d;
}

int main() {
    double d = function();
    printf("d=%f\n", d);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这给了我

d=5.894000
d=5.000000
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

c double return return-value

-1
推荐指数
1
解决办法
52
查看次数

标签 统计

c++ ×2

c ×1

c# ×1

c++-cli ×1

double ×1

g++ ×1

overflow ×1

return ×1

return-value ×1

warnings ×1