Listing 1 (important.h)

File:  "important.h"

struct _an_important_object
   {
   int one_member;
   char another_member;
   ....
   };

typedef struct _an_important_object *AN_IMPORTANT_OBJECT;

/* Function prototypes */

AN_IMPORTANT_OBJECT their_function(void);
void another_function(AN_IMPORTANT_OBJECT);

User file:

#include "important.h"

my_func()
   {
   AN_IMPORTANT_OBJECT my_object;

   my_object = their_function();
   ...
   another_function(my_object);
   ...
   }