2010-07-28 72 views
0

我有三行代码:每次我去掉第二INT PI和评论第一INT PI我得到这个错误时奇怪的Visual Studio 2008的C++编译器错误

//int pi; 
activation->structSize = sizeof(rmsActivationT); 
int pi; //program wont compile with this here 

:语法错误:缺少“;”在“类型”之前。当我取消注释这第一个int pi并评论第二个int pi时,我的编译器不再抱怨了。这个错误一直困扰着我几乎整整一天,现在任何想法都会很棒。

感谢

视觉工作室2008 的Windows XP 32位

+2

也许你应该表现出比这更多... – 2010-07-28 15:31:21

+0

你能表现出一定的语境,到底是哪行的错误消息指出指着?现在,我什么都不做,只是疯狂地猜测。 – 2010-07-28 15:31:35

+0

你可以帮我一个忙,并在每个之间添加一个空行,并尝试各种评论/取消注释/编译选项? – Caladain 2010-07-28 15:32:11

回答

5

你,或许,编译代码为C,而不是C++? C(在Visual Studio不支持的C99之前)要求块中的所有定义先于任何其他语句。

+0

你打败了我。这几乎是肯定的问题,因为这正是会导致的错误。如果该文件是.cc/.cpp文件,请检查项目属性中的“C++/Advanced/Compile As”设置。如果您的文件是“.C”文件,请记住Windows不区分大小写,您需要重命名源文件或使用上述设置强制执行C++编译。 – 2010-07-28 15:35:43

0

我有同样的问题。

的编译错误是:

* main.cpp中(325):错误C2601: 'FLAG':本地函数的定义是非法

main.cpp中(323):此行包含“{ “这还没有被匹配

main.cpp中(326):致命错误C1075:文件末尾左括号之前发现 '{' 在 'main.cpp中(323)' 被匹配*

但我的代码没有错。我计算了所有括号和匹配的数字。另一个函数内部没有任何函数。

我通过从源代码中删除所有“//”注释来解决它。看起来原因在于坏行格式导致编译器错过换行符,因此注释之后的行也被当作注释。

例如:

// This is a comment 

This_is_a_line; 

被视为:

// This is a comment This_is_a_line;