通常在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 ++ / CLI中的托管代码是否可以在算术溢出时引发异常?C#具有checked关键字和全局项目标志来启用这些功能,但是我在C ++ / CLI中都找不到...
我的情况是我将C ++库包装在.NET中。有时,C ++本机代码会溢出。我当时/正在考虑将一些敏感的计算移至现有的C ++ / CLI包装器中,但这也许不可能吗?
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)
我在这里错过了什么?