EG
typedef void atexit_function ( void ) ;
// Two equivalent definitions of the same type , which hides a pointer
typedef atexit_function * atexit_function_pointer ;
typedef void (* atexit_function_pointer ) ( void ) ;
// Five equivalent declarations for the same function
void atexit ( void f ( void ) ) ;
void atexit ( void (* f ) ( void ) ) ;
void atexit ( atexit_function f ) ;
void atexit ( atexit_function * f ) ;
void atexit ( atexit_function_pointer f ) ;

