I made it clear to my SO that there are particular things I need from him , not because I ' m crazy and always keeping an eye on him , but I need to in order to calm my anxiety and know that he isnt dead . With me in particular , I needed him to tell me when he gets home or when he is going to be going to the pub with coworkers after work . I gave him an example of what I ' m looking for . Eg . I ' m gonna be out later tonight , out for some drinks . If he isnt able to come to a compromise with you , he obviously isn ' t willing to be understanding of your mental illness and is not the right person for you . <| sep |> Thank You ! !!!<| sep |> Professional programmer here . Complex programs have headers that include headers all the time . Like 100 % of complex programs . Include guards are important , but for certain headers they aren ' t actually required . And modern compilers don ' t need them to prevent you from including the target file , they ' ll do well enough splatting out the file again if needed . Malloc is also a thing that you still see in lots of complex code , especially when dealing with raw buffers . You were able to comment out includes of includes because of the particular Cpp file you were compiling . But a different C file including the same header or a subset of the headers may not work . In general , a header file should work when included by itself , which makes it easier to write test code . But the tradeoff is that you redundantly include things from headers when they get complicated . Of course , it is good programing practice to not include things you don ' t need and to structure your code to allow for Cpp files and not headers to include other headers as much as possible . But some things just require you to include headers from other headers .