读书人

typedef struct XXX XXX是宣言还是实

发布时间: 2012-08-09 15:59:21 作者: rapoo

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++中是合法的重复声明。

读书人网 >C++

热点推荐