Macro and function with same name in header file : <p><code>tool.c</code></p>

<pre><code>#include &lt;stdlib.h&gt;

#include "tool.h"

void safeFree(void** pp) {
    if (pp != NULL &amp; *pp != NULL) {
        free(*pp);
        *pp = NULL;
    }
}
</code></pre>

<p><code>tool.h</code></p>

<pre><code>#ifndef tool_h
#define tool_h

void safeFree(void** pp);
#define safeFree(p) safeFree((void**)&amp;(p))

#endif /* tool_h */
</code></pre>

<p>I want to use the macro after I import <code>tool.h</code> in <code>main.c</code>, but the programme can't be compiled. Is there any way I could define macro and function with same name?</p>
