PATH
Very often one header file includes another, which can result in a certain header file being included more than once. This may lead to errors if the header file defines structure types or typedefs, and in any event is wasteful. For these reasons, you should try to avoid multiple inclusion of a header file.
The standard way to prevent multiple inclusion of a file is to enclose the entire real contents of the file in a conditional, like this:
#ifndef __FILE_FOO_SEEN__
#define __FILE_FOO_SEEN__
the entire file
#endif /* __FILE_FOO_SEEN__ */
The macro __FILE_FOO_SEEN__ indicates that the file has been included once already; its name begins with __ to avoid conflicts with user programs, and it contains the name of the file and some additional text to avoid conflicts with other header files.
Alternatively (if compatibility with non-Mac OS X platforms isn't an issue), you can ensure that each file is included only once simply by using the Objective-C #import command instead of the #include command.