int f(struct r);
struct r
{
int a;
int b;
};
Приведенный выше фрагмент в исходном файле выдает ошибку,
warning: its scope is only this definition or declaration,
which is probably not what you want for the line int f(struct r)
и следующий фрагмент где-то в том же исходном файле, но до определения функции f(struct r)
struct r emp;
f(emp);
выдает ошибку
error:type of formal parameter 1 is incomplete for the line f(emp)
но то же самое, когда структура заменяется на typedef
, таких ошибок не было ...
Является ли это свойство для объявления аргумента в объявлении функции перед его использованием, специфичным только для структуры?