LINUX.ORG.RU

C: typedef redefinition


0

0

typedef int foo;
typedef int foo;
int main(void) { return 0; }

GCC ругается сабжевой ошибкой, MSVC не выдаёт даже предупреждения.

Как должно быть по стандарту?
anonymous

Ответ на: комментарий от dilmah

Ну да, если компилировать g++ ошибки нет. Вопрос возник из-за принципиально разного поведения GCC и MSVC при коипиляции *.c

anonymous
()
Ответ на: комментарий от KiloHertz

>Зачем так делать???

Есть такой приём -- иллюстрация проблемы на максимально простом и понятном примере :)

anonymous
()
Ответ на: комментарий от user_undefined

Я из командной строки компилил cl /Wall test.c
Совершенно точно воспринимает как С код, не С++.
Например, прокатывает такое:

int main(void) {
    int class = 0;
    return 0;
}

anonymous
()
Ответ на: комментарий от anonymous

По стандарту переопределений быть не должно. Можно убедиться, проверив splint'ом. А кто-то еще считает что MSVC учитывает какие-то стандарты кроме мелкософтовских?!)

Progmaker
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.