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