I searched and did not find any comments on this topic so here goes:
I have a function in main.c that requires an include file that is included in another include file (call it top level). If I use the top include file in main.c, the reference is not picked up by main. So does that mean the scope of the include file that is the second level down is only good for the Top level include but not usable by main.c that invoked the top level include? I find that if I include both files in main.c the reference succeeds.
This is used in the Logging Utility in most repositories in the Utility folder. My main looks like this:
/* USER CODE BEGIN Includes */
- include “stm32746g_discovery_lcd.h”
- include “stm32746g_discovery_sd.h”
- include “lcd_log.h”
- include “lcd_log_conf.h”
/* USER CODE END Includes */
Later in main, there is a call:
LCD_UsrLog ((char *)” State: Ethernet Initialization ...\n”);
If the last include line in main is commented out I get the error: Symbol ‘LCD_LOG_TEXT_COLOR’ could not be resolved
Note: the lcd_log_conf.h is the first include line in lcd_log.h!
I think the standard says that nested includes have or are supposed to have scope over the .c file in which they are included. Is there a switch or configuration selection I have missed somewhere?