Из этого question
Мне трудно понять этот код.
struct foo myfoo; // --> Is it forward declaration or object creation. ?
struct foo
{
int a;
};
int main()
{
return 0;
}
В коде, помеченном стрелкой -->
Является ли это объявлением или созданием объекта.
Если это объявление вперед, то что называется struct foo;
? Если это создание или создание объекта, то как он может создать объект перед определением структуры.
В gcc
компилятор работает нормально, но другой компилятор дает ошибку.
gcc -Werror -Wall tst.c -o tst
Любое предложение или объяснение этого поведения gcc
? Я не мог найти нигде, как задокументировано.