Чтобы дать компилятору и компоновщику наилучшую возможность поместить объект (например, структуру) во флэш-память, определите его с помощью const
и со статической продолжительностью хранения.
Чтобы дать ему статическую продолжительность хранения,определить его вне любой функции или с помощью static
.Например, если у вас есть struct foo
, вы можете определить его следующим образом:
// Declared at global scope without "static":
// Has static storage duration, external linkage.
const struct foo Parameters1 = { 3, 4 };
// Declared at global scope with “static":
// Has static storage duration, internal linkage.
static const struct foo Parameters2 = { 5, 6 };
void foo(void)
{
// Declared inside a function with "static".
static const struct foo Parameters3 = { 7, 8 };
…
}
Это дает объекту только те свойства, которые ему нужны - постоянное и статическое время хранения - чтобы компилятор и компоновщик могли его поместить.в мгновение окаНезависимо от того, делают они это, является свойством этих инструментов, поэтому вам, возможно, придется обратиться к их документации и использовать параметры командной строки или другие входные данные для этих инструментов, чтобы дать им конкретные инструкции по этому поводу.
Вы можете объявить отдельных членовstruct
будет const
.Однако, даже если все члены объявлены const
, я не обязательно ожидал бы, что компилятор и компоновщик будут обращаться с ним так же, как если бы struct
был объявлен const
.