Until now, I was using 8bit AVR microcontrolers. On that platform, you have to declare data as "PROGMEM" if you want it to be stored on flash memory only.
For example:
const uint8_t some_data[5] PROGMEM = {3, 6, 12, 24, 48};
Then you have to use pgm_read_byte(*uint8_t) to read it.
If you decide to define and use it regular way, it will be copied to the RAM anyway. So if we are talking about complicated structures and/or long arrays, project will run out of memory.
I know it is not a problem on modern 32bit platforms. For example on PIC32 it is sufficient to define data as "const" and it will be stored in and read from flash directly, without wasting any RAM space.
I want to know how it is done in ESP8266. "Const" data structure is stored only in flash by default, or do I need to do something else to preserve RAM?