It compiles, links and runs without error.
test.c
#include "foo.h"                                                                 
int main()                                                                       
{                                                                                
    foo(4);                                                                      
    foo();                                                                       
    foo("cheese");                                                               
    foo("cheese", 8);                                                            
}
foo.h
#ifndef FOO_H                                                                    
#define FOO_H                                                                    
int foo();                                                                       
#endif
foo.c
#include <stdio.h>                                                               
#include "foo.h"                                                                 
int foo(int a)                                                                   
{                                                                                
    printf("Hello\n");                                                           
}
Compiled with gcc test.c foo.c
