Почему ошибка «Переопределение typedef» в GCC 4.3, а не в GCC 4.6? - PullRequest
5 голосов
/ 29 июня 2011

Я разрабатывал свое приложение, используя 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 Ответ

5 голосов
/ 30 июня 2011

Это похоже на преднамеренное изменение ...

У меня нет 4,6 на руках, но похоже, что вы получите предупреждение, если вы используете -pedantic.

...