请教Compiler Error C2061的分析

look_think 2003-11-20 08:13:46
以下摘自MSDN。我没有太看明白,不知道哪位能帮忙解释一下。另外,我的实际问题是在定义一个接口的时候,用到一个其他文件中的结构体(我的接口中定义了一个使用该结构体的函数,参数类型是该结构体的指针)。我没有包含该文件,于是出现该错误。但是这样为什么呢?

Compiler Error C2061
syntax error : identifier 'identifier'

The compiler found identifier where it was not expected. This error can be caused by enclosing an initializer in parentheses. The error can be avoided by enclosing the declarator in parentheses or making it a typedef. The following example causes this error and shows two fixes:

class X {};
class Y {};
class Z {};
class W : public X, public Y, public Z {};

void func ( W* pW )
{
X* pX ( pW ); // Error: unexpected identifier 'pW'

Y ( *pY ) ( pW ); // OK, declarator in parentheses

typedef Z *pZ_t;
pZ_t pZ ( pW ); // OK, typedef used for Z
}

...全文
60 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
darcymei 2003-11-22
  • 打赏
  • 举报
回复
楼上的,debug又不是为编译错误来的。
还有,这个错误是can be caused by enclosing an initializer in parentheses
是用像int a(5);这种括号初始化引起的,又不是函数声明的问题。
楼主问
1、为什么在当前文件中声明一下这个结构体就可以了
更本原因并不是这个,但就像mousemice(荣)说的编译器报错不一定准确,可能你一家就好了。没有具体代码很难凭空解释。

gladiatorcn 2003-11-22
  • 打赏
  • 举报
回复
楼上满有意思的。
严格上编译器在语法分析阶段的任何错误都是像楼上说的,不单单是这个问题。
msdn只是说:这个标示符是不被期待的。
并不是所有的编译器错误都可以作为除错的根据,否则DEBUG哪有那么难?还用软件工程?呵呵。但是,只要编译器报错,就证明:你一定错了。
其实,函数声明是不需要写明参量表的。但是实现的时候一定要写清楚哦。
例如:
实现 int example(int a,int b){...}
声明 int example()或int example(int,int)或int example(int a,int b);
mousemice 2003-11-22
  • 打赏
  • 举报
回复
我认为编译器报错不一定准确

它只是发现文法错误
然后找到分析表中的错误处理

这个错误处理有时不能准确的指出错误的原因
而且在vc里面,有时会将错误指到一些莫名其妙的地方


——正在学编译原理,刚好被ll(1)的分析表构郁闷的要死-_-
如果这种解释有错,希望大家指出,讨论讨论,反正在学习嘛,又不怕丢脸^_^
darcymei 2003-11-22
  • 打赏
  • 举报
回复
msdn不是说的很清楚了吗
更本不是什么头文件的问题。
在你用括号中一个变量初始化一个变量时(初始化还有常用的一种方法就是=)必须明确声明变量的类型。int (*a)就是说明a是一个指针,指向int

为什么在当前文件中声明一下这个结构体就可以了。这样的做法肯定不可能解决msdn上例子一样的问题。


GameSmith 2003-11-22
  • 打赏
  • 举报
回复
不包含定义的头文件程序当然报错!
头文件是你自己定义的,不是库函数,不包含编译器无法正确运行!
look_think 2003-11-21
  • 打赏
  • 举报
回复
我知道这样可以解决。但是我有两个不明白:
1、为什么在当前文件中声明一下这个结构体就可以了
2、这个错误到底是什么
istone 2003-11-20
  • 打赏
  • 举报
回复
那你把哪个结构体的 .h文件
include就可以了

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧