2011-06-29 17 views
5

Derlemem için GCC 4.6 kullanarak uygulamamı geliştiriyorum, ancak bir kullanıcı "typedef'in yeniden tanımlanması" hatasını bildirdi. Ben haksız yere Git kullanarak en son kaynak getirmesi kullanıcıyı anlattı bazı karışıklık sonra yakından baktık ve buna benzer bir şey buldum:Neden GCC 4.3 ile "typedef'in yeniden tanımlanması" hatası, GCC 4.6 değil?

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

eski GCC sürümleri için düzeltmek için oldukça kolaydır, ama neden bu artık bir hata mı? Yoksa raporlamaya gerek var mı?

+0

cant ... bekle ... kadar ... değiştiriyoruz ... C önişlemci ... gerçek bir betik dili ile ... PHP veya objektif C smalltalk analogu gibi .. – Dmitry

cevap

5

Bu

Ben el 4.6 yok ... Bir deliberate change gibi görünüyor, ama -pedantic kullanırsanız uyarı alacak gibi görünüyor.