1
完善资料让更多小伙伴认识你,还能领取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 条评论
|
|
只有小组成员才能发言,加入小组>>
397个成员聚集在这个小组
加入小组自己做的hpm5321和6750板子怎么都没有1.1的输出呢?
1048 浏览 1 评论
关于hpm6364的femc同时使用外接sdram和sram的问题
881 浏览 1 评论
851 浏览 0 评论
754 浏览 1 评论
863 浏览 0 评论
【盖楼抢好礼】欢迎先楫半导体HPMicro入驻德赢Vwin官网 社区!
24944浏览 532评论
2690浏览 22评论
USBX范例中启用 double FPU , 运行异常,卡死在tx_risc_v_trap_handler函数
2965浏览 5评论
1782浏览 5评论
请问Segger Embedded Studio这个窗口不小心拉出来悬浮后怎么塞回去?
2944浏览 5评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 00:40 , Processed in 0.626907 second(s), Total 85, Slave 69 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号