完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用SEGGER Embedded Studio编译器发现变量无法自动初始化, |
|
相关推荐
2个回答
|
|
在SEGGER Embedded Studio编译器中,可以通过使用全局变量初始化器来确保变量在声明时被初始化为默认值。
对于静态变量,你可以在声明时直接将其初始化为0。例如: ``` static uint8_t i = 0; ``` 对于结构体,你可以使用以下方式来初始化变量为默认值: ``` struct myStruct { int a; float b; }; struct myStruct myVar = {0}; ``` 上述代码将会将`myVar`结构体的成员变量`a`和`b`都初始化为0。 另外,你也可以使用以下方式来初始化结构体变量为默认值: ``` struct myStruct myVar = {0}; // 或者 .a = 0, .b = 0 ``` 这样就可以确保结构体的成员变量在声明时被初始化为默认值了。 如果你希望在整个项目中都使用默认值初始化变量,你可以在项目的链接脚本 (`*.ld` 文件) 中为全局变量段添加一个ZERO 表示的段。具体操作步骤如下: 1. 打开项目的链接脚本文件 (一般为 `*.ld` 或 `*.x`)。 2. 找到定义全局变量段(如 `.data`)的相关区域。 3. 添加一个具有ZERO 属性的段,例如: ``` .data : { ... } > RAM AT > FLASH .ZERO (NOLOAD): { *(.bss*) } > RAM ``` 这样,所有没有显式初始化的全局变量将会被放置在这个 `.ZERO` 段中,从而被初始化为默认值。 希望这能帮助到你解决问题! |
|
|
|
在声明时就初始化在这个编译器中无法生效,在代码中实测只能声明成哪种数据类型,初始化没有完成
现在有些数据是按照下面这种写法清零的,我想知道有没有一种高效的方法,不需要主动去初始化在声明时就自动初始化了 |
|
1 条评论
|
|
只有小组成员才能发言,加入小组>>
354个成员聚集在这个小组
加入小组390 浏览 0 评论
1266 浏览 22 评论
977 浏览 2 评论
5361之PWM之CMP更新慢至1秒,请各位有经验的高手帮忙!
1118 浏览 1 评论
【先楫HPM5361EVK开发板试用体验】(原创)6.手把手实战红外线传感器源代码
8684 浏览 0 评论
【盖楼抢好礼】欢迎先楫半导体HPMicro入驻电子发烧友社区!
18863浏览 532评论
1266浏览 22评论
USBX范例中启用 double FPU , 运行异常,卡死在tx_risc_v_trap_handler函数
2521浏览 5评论
1276浏览 5评论
请问Segger Embedded Studio这个窗口不小心拉出来悬浮后怎么塞回去?
2317浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-16 02:14 , Processed in 0.569922 second(s), Total 53, Slave 47 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号