'identifier' : illegal use of this type as an expression
An expression uses the ->
operator with a typedef identifier.
Example
typedef struct S { int mem; } *S_t; void func1( int *parm ); void func2() { func1( &S_t->mem ); // error: S_t is a typedef }