Yes. Include files can be nested any number of times. As long as you use precautionary measures , you can avoid including the same file twice. In the past, nesting header files was seen as bad programming practice, because it complicates the dependency tracking function of the MAKE program and thus slows down compilation. Many of today?s popular compilers make up for this difficulty by implementing a concept called precompiled headers, in which all headers and associated dependencies are stored in a precompiled state.
Many programmers like to create a custom header file that has #include statements for every header needed for each module. This is perfectly acceptable and can help avoid potential problems relating to #include files, such as accidentally omitting an #include file in a module.
Yes, header files can be nested to any level. As long few good programming practices are followed:
1. Always use header file guarding to avoid multiple inclusions. This will cause issues during compilation. The compiler is going to complain about redeclaration/redeffinition of variables
2. Avoid circular inclusions. This is one of bigger blunders a naive programmer would do. This becomes impossible to resolve unless proper care is taken to design the header file structure in large projects