vodi fun(){
int v1 = 0;
static v2 = 0;
}
我用jlink调试的时候这两个变量都没有初始化,如果把int v1 = 0;写成两句int v1;v1=0;可以初始化,还有静态变量应该会自动初始化为零啊,可是也没有初始化,此外,我定义的全局变量也不会初始化,哪位大神知道是怎么回事啊?
keil uVision4 调试stm32时变量不能初始化
答案:2 悬赏:40 手机版
解决时间 2021-04-14 17:11
- 提问者网友:刺鸟
- 2021-04-13 20:01
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-04-13 21:36
优化使然。
从未用过的局部变量,编译器会将其判定为“写者脑残”从而不会生成相关语句。
至于全局变量未初始化,你检查一下你的初始化方式?声明时赋初值?跟踪一下引导时对非零初始化模块的执行情况。
从未用过的局部变量,编译器会将其判定为“写者脑残”从而不会生成相关语句。
至于全局变量未初始化,你检查一下你的初始化方式?声明时赋初值?跟踪一下引导时对非零初始化模块的执行情况。
全部回答
- 1楼网友:慢性怪人
- 2021-04-13 23:00
keil-project-options for target-选项卡c/c++
左侧中间有个optimization 后面的对应的就是编译优化设置
level 0就是不优化
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯