为什么;typedef的重新定义;GCC 4.3错误,但GCC 4.6错误?

为什么;typedef的重新定义;GCC 4.3错误,但GCC 4.6错误?,gcc,compiler-errors,typedef,redefinition,Gcc,Compiler Errors,Typedef,Redefinition,我一直在使用GCC4.6开发我的应用程序进行编译,但是一个用户报告了“重新定义typedef”错误。在我错误地告诉用户使用Git获取最新的源代码时出现了一些混乱,我仔细查看后发现了类似的情况: /* mystruct.h */ #ifdef MYSTRUCT_H #define MYSTRUCT_H typedef struct _mystruct mystruct #endif /* mystruct.c */ #include "mystruct.h" typedef stru

我一直在使用GCC4.6开发我的应用程序进行编译,但是一个用户报告了“重新定义typedef”错误。在我错误地告诉用户使用Git获取最新的源代码时出现了一些混乱,我仔细查看后发现了类似的情况:

/* mystruct.h */

#ifdef MYSTRUCT_H
#define MYSTRUCT_H

typedef struct _mystruct mystruct

#endif



/* mystruct.c */
#include "mystruct.h"

typedef struct _mystruct
{
    int a;
    int b;

} mystruct;
对于较旧的GCC版本,这很容易修复,但为什么这不再是一个错误呢?还是需要报告?

这看起来像是一个


我手头没有4.6版本,但如果您使用
-pedantic

cant。。。等待直到我们替换。。。C预处理器。。。用实际的。。。脚本语言。。。像PHP或objective C smalltalk analog。。