No, there is no need for the declarations function. Just declare the variable outside of all functions. This will make that variable a global variable so it will be available to all the functions in the file. Also the extern int declaration is not needed when the variable is a global variable.
Your code with the above modifications would look like this:
Code:
MyFunction.c
int bob=2;
void hi(void)
{
int bill=0;
bill=bob+2;
}