それでできるはず。やってみな。

さらに、stack.hでStackをstruct Stack;と不完全にだけ宣言しておけば、
main.cの再コンパイルなく2つを差し替えられるようになるはず。