I've seen a number of listings which include some pre-proccessor stuff that I don't see the need for. Here's an example. The file is a header file ADD.H. Here is the whole file:
___________________________________________________________________
#ifndef ADD_H
#define ADD_H

(Some function prototype which is just what you'd expect in a header file ;)

#endif

___________________________________________________________________

What do the first two and last lines accomplish?

It prevents multiple inclusion of the header. That is, on a second attempt to #include "add.h", ADD_H would already be defined and thus the entire #ifndef block would be skipped.