为什么“重新定义typedef”错误与GCC 4.3而不是GCC 4.6?

时间:2011-06-29 19:44:43

标签: gcc compiler-errors typedef redefinition

我一直在使用GCC 4.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版本,这很容易修复,但为什么这不再是错误?还是需要报告?

1 个答案:

答案 0 :(得分:5)

这看起来像deliberate change ...

我手头没有4.6,但如果您使用-pedantic,您似乎会收到警告。