如何在c中初始化持久变量

问题描述 投票:0回答:1

.h
文件中我有一个持久变量
extern <Enum Datatype> __attribute__((section(".persist"))) state

.c
文件中,我必须将变量
state
初始化为枚举成员之一 例子:
enum state = <One of the member of enum>

如果我尝试上述方法,编译器会抛出警告持久变量无法初始化。

注意:持久变量用于测试系统的 PRE 和 POST 使用情况,因此最初在应用程序代码中我希望测试从 PRE 开始。

c variables persistent-storage
1个回答
0
投票

将变量标记为“持久”的唯一目的是防止启动代码初始化该变量。因此,编译器不允许初始化这样的变量是有道理的。

如果变量确实需要持久化(即必须在应用程序的不同运行中保留该值),则必须通过在代码中赋值来为其赋予值。

© www.soinside.com 2019 - 2024. All rights reserved.