Мне нужно в коде на С++ положить во флешку по определнному адресу, заданному на этапе компиляции, некоторую константную структуру данных - блок параметров.
Пока удалось сделать только так:
parameters.h
Код
typedef struct
{
...
} tParameters;
#ifndef __PARAMETERS__
extern const tParameters* Parameters;
#endif
{
...
} tParameters;
#ifndef __PARAMETERS__
extern const tParameters* Parameters;
#endif
И Parameters.cpp:
Код
#define __PARAMETERS__
#include "Parameters.h"
static const tParameters Param @ "CFG_SEG" = {...};
const tParameters* Parameters = &Param;
#include "Parameters.h"
static const tParameters Param @ "CFG_SEG" = {...};
const tParameters* Parameters = &Param;
В таком виде это работает, но хочется сделать это одной переменной. Т.е. я не могу написать такое extern описание для переменной Param чтобы в любом другом месте кода использовать конструкцию Param.SomeField.
Я прекрасно понимаю, что в моем случае обращение вида Parameters->SomeField, в плане скорости и расхода памяти, нисколько не хуже чем Param.SomeField, просто хочется узнать, где мы с компилятором друг друга не поняли
