Why won't my C code compile? : <p>I'm running "gcc foo.c"</p>

<p>foo.c:</p>

<pre><code>#include "foo.h"

FILE* foo(char* fileName) {
... }
</code></pre>

<p>foo.h:</p>

<pre><code>#ifndef FOO_H
#def FOO_H
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

FILE* foo(char* fileName);

#endif
</code></pre>

<p>The error is:</p>

<pre><code>foo.c:5:1: error: expected '=', ',', ';', 'asm', or '__attribute__'
before '{' token
{
</code></pre>

<p>Baffled here. Is there something wrong in the way I'm using headers? I've pored over this code for a while and can't find anything. Could it be a bad gcc statement in the command line?</p>
