C:\Wexam\35010001\prog.c(29) : error C2059: syntax error : '}'是什么意思

我初学c++,在调试自己写的程序的时候,下面报错的地方(我也不知道叫什么,就是编辑区下面的那个)出现上面这个,请教下是什么意思?我只知道C:\Wexam\35010001\prog.c(29)应该是我的程序存储路径,error C2059这个是什么意思特别是那个数字有什么具体指示么?希望哪位高手能帮忙解决下,谢谢
谢谢各位的回答,我想知道c2059这个是什么意思?是指错误的具体地点么?怎么理解? 另外在我 瞪 着 屏幕 瞧 了半天,猜测路径后面的c29可能是错误所在的语句所处的列,不知道我的猜测是否正确

2059指错误类型,微软的内部编号

编译器错误 C2059语法错误 :“token”

该标记导致语法错误。

若要确定原因,则不仅要检查在错误信息中列出的行,还要检查该行上面的行。以下示例对包含左大括号的行生成了错误信息,而该错误的真正原因却出现在其上面的行中。

// C2059a.cpp
int main ) // C2059 No opening parenthesis.
{
}
如果对行的检查没有获得有关可能出现的问题的任何线索,则尝试注释掉在错误信息中列出的行以及可能出现在该行上面的若干行。

如果该错误信息在紧跟 typedef 变量的符号上出现,则检查该变量是否已在源代码中定义。

如果符号没有计算出任何结果(在使用 /Dsymbol= 编译时可能发生),则可能会获得 C2059。

// C2059b.cpp
// compile with: /DTEST=
#include <stdio.h>
int main()
{
#ifdef TEST
printf("\nTEST defined %d", TEST); // C2059
#else
printf("\nTEST not defined");
#endif
}

可能收到 C2059 的另一个特定原因是编译在函数的默认参数中指定了结构的应用程序。参数的默认值必须是一个表达式。初始值设定项列表(如用于初始化结构的初始值设定项列表)不是表达式。下面的示例生成 C2059:

// C2059c.cpp
struct ag_type
{
int a;
float b;
};

void func(ag_type arg = {5, 7.0}); // C2059
其解决方法是定义一个执行所需初始化的构造函数。

struct ag_type {
int a;
float b;
ag_type(int aa, float bb) : a(aa), b(bb) {}
};
void func(ag_type arg = ag_type(5, 7.0));
int main()
{
}
如果您在类外定义成员模板类或函数,也可能获得 C2059。有关更多信息,请参见知识库文章 Q241949。

第一种:

int main )
{
}

它会引起C2059错误,错误信息:error C2059: syntax error : )

第二种:

#include <stdio.h>
#define TEST
int main(int argc, char* argv[])
{
#ifdef TEST
printf(\nTEST defined %d, TEST);
#else
printf(\nTEST not defined);
#endif

return 0;
}

它也会引起C2059错误,错误信息:error C2059: syntax error : )

另外一种:

struct ag_type
{
int a;
float b;
};

void func(ag_type arg = {5, 7.0});

它也会引起C2059错误,错误信息:error C2059: syntax error : ) 还会附带error C2143:。

第三种 头文件互耦

参考资料:MSDN

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-26
把你的程序代码贴上来
你光给个错误代码,就像生了病要去医院一样,你人不去医院光给医生打电话说你头疼,医生能凭“头疼”这两个字给你做出诊断然后给你开药么?

补充:C2059是错误代码,表示语法错误,就是说编译器编译你的代码时编译到这里发现有语法错误,于是就会报错。
CXXXX仅仅是错误代码,表示在编译时遇到了什么错误,同时会提示你错误出在哪一行,但是具体到源程序的错误有可能并不是在这一行,有可能错误是在前面的。