Message <Context> the struct type was previously declared in this function with prototype scope. Now it is declared with file scope. Description This message is generated when the compiler first encounters a function prototype that declares a type with prototype scope, and then later sees a second declaration or definition of that same function with the parameter declared using the same type declared at file scope. For example: void foo(struct S { int a; int b;} *s); struct S { int a; int b;} s; void foo(struct S *s); User Action Declare the type at file scope before the first prototype declaration.