求教keil 三级优化后函数返回值传递不到

2019-08-16 18:13发布

本帖最后由 wt13568089592 于 2017-7-28 00:42 编辑

求教keil 三级优化后函数返回值传递不到,这是啥问题?uint16_t a;

uint16_t ret()
{
        return (uint16_t)5;
}

a=yet();

这样a=0;如果是1级优化,就可以正常的得到结果。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-08-16 20:30
仿真找问题,纯软件问题,自己仿真就能解决
super910906
2楼-- · 2019-08-17 01:34
uint16_t ret()
{
        return (uint16_t)5;
}

a=yet();
你确定调的函数是这个yet()?
wt13568089592
3楼-- · 2019-08-17 05:08
 精彩回答 2  元偷偷看……
super910906
4楼-- · 2019-08-17 05:55
wt13568089592 发表于 2017-7-28 10:11
没错啊,我直接用a=yet();一级优化都行,三级优化就不行了!

但是你这函数名是ret,你调用yet,有点看不明白了。
wt13568089592
5楼-- · 2019-08-17 06:15
super910906 发表于 2017-7-28 10:27
但是你这函数名是ret,你调用yet,有点看不明白了。

写错了
调用的ret,手误!
shibinjie
6楼-- · 2019-08-17 11:24
wt13568089592 发表于 2017-7-30 11:34
写错了
调用的ret,手误!

变量a加上 volatile

一周热门 更多>