TITLE: Typedefs and const PROBLEM: acube@eecg.toronto.edu (Aditya Aggarwal):, 17 Nov 93 I was using the typedef in the following way typedef struct { ...... } EMPLOYEE, *PEMPLOYEE; where ever a pointer to EMPLOYEE was needed PEMPLOYEE was used for example { PEMPLOYEE newEmployee; ...... } My problem is as follows [...] void UpdateList ( const PEMPLOYEE pNewEmployee ); main ( ) { EMPLOYEE employee; ... UpdateList ( &employee ); } [...] But the compiler gives a undefined function call error Update ( EMPLOYEE* ); not defined If I change the prototype as void UpdateList ( const EMPLOYEE *pNewEmployee ); then the compiler is able to compile properly. I don't understand why compiler is able to understand that const EMPLOYEE * is same as const PEMPLOYEE; RESPONSE: grumpy@cbnewse.cb.att.com (Paul J Lucas), AT&T Bell Laboratories typedefs are *not* macro substitutions. A const PEMPLOYEE is the same as EMPLOYEE *const, i.e., a const pointer to an EMPLOYEE and *not* a pointer to a const EMPLOYEE.