You can, but it's not a very good idea. If you really must, you can prevent recursion with the use of include guards (which are a good idea regardless).
If the header files are guarded, as they normally are, then it would not. The real problem is making the dependencies seen by the C compiler work in either direction.
#pragma once