typedef struct XXX XXX是声明,还是实现?
typedef struct MyPtr MyPtr;
这样,是声明,还是实现?
我在GCC下编译通过了,不可思议那。
在我的印象中,struct MyPtr;只是用于声明的,可以避免编译期错误,但在link的时候不能通过的,所以还需要在其它地方定义实现一下:
struct MyPtr
{
};
请大侠帮忙解释一下,我现在有点想不通,呵呵。
[解决办法]
typedef在C中属于定义,在C++中属于声明。所以对于如下代码:
typedef struct MyPtr MyPtr;
typedef struct MyPtr MyPtr;
在C中会发生重复定义错误,但在C++中是合法的重复声明。