【发布时间】:2011-02-28 22:39:07
【问题描述】:
我正在试验一段 C 代码。谁能告诉我为什么带有 SP1 的 VC 9.0 会崩溃?哦,代码是为了作为讨论中使用的示例,为什么像
void main (void)
是邪恶的。
struct foo { int i; double d; } main (double argc, struct foo argv)
{
struct foo a;
a.d=0;
a.i=0;
return a.i;
}
如果我放了
return a;
编译器不会崩溃。
【问题讨论】:
-
编译器根本不应该崩溃,如果它在试图理解你的代码时崩溃,那就是编译器的一个错误。
-
+1 代表讨厌的例子。花了我一点时间才弄清楚你在做什么:)另外,VS2010 C++ 编译器现在强制执行 main() 的签名(iow,上面的代码不再编译)。
-
尝试用分号关闭结构。看看这是否会改变编译器的行为。这可能确实是一个编译器错误。
-
顺便说一句,我对 VS2010 C++ 编译器印象深刻,因为它更好地执行了标准——包括头文件末尾的那些讨厌的回车!
-
@AndrejaKo:您可以在connect.microsoft.com 上提交缺陷报告,我可以确认在 Visual C++ 2010 中也发生了内部编译器错误,所以最好的办法是报告该版本,因为它是然后更有可能修复(如果您不想报告它,我可以报告它......无论哪种方式。如果您确实报告了缺陷,请务必在此处发布链接,以便人们可以根据需要对其进行投票) .
标签: c visual-studio-2008 visual-c++ crash compiler-errors