开发者

Why "Redefinition of typedef" error with GCC 4.3 but not GCC 4.6?

开发者 https://www.devze.com 2023-03-16 02:18 出处:网络
I\'ve been developing my application using GCC 4.6 for compilation but a user reported the \"redefinition of typedef\" error. After some confusion where I wrongfully told the user to fetch the latest

I've been developing my application using GCC 4.6 for compilation but a user reported the "redefinition of typedef" error. After some confusion where I wrongfully told the user to fetch the latest source using G开发者_StackOverflow中文版it, I took a closer look and found something similar to this:

/* 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;

Which is quite easy to fix for the older GCC versions, but why is this no longer an error? Or does it need reporting?


This looks like a deliberate change...

I don't have 4.6 to hand, but it looks like you will get the warning if you use -pedantic.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号