It doesn't necessarily follow that stuff that has to be in different windows has to be in different source files. Form design and software design are linked but do not necessarily have to follow each other. Anyway here is an example of a header file included by two source files (not tested):

inc.h:
Code:
#define FOO 27
int bar();
main.c:
Code:
#include <stdio.h>
#include "inc.h"

int main()
{
  printf("FOO=%d; bar()=%d\n",FOO,bar());
  return 0;
}
gronk.c:
Code:
#include <stdio.h>
#include "inc.h"

int bar()
{
  printf("in bar(), returning %d\n",FOO);
  return FOO;
}
Compile with something like gcc main.c gronk.c -o main
and this will compile main.c and gronk.c to produce main.o and gronk.o, then link them together.
Output should be something like:

in bar(), returning 27
FOO=27; bar()=27