打印
[STM8]

静态变量通过函数返回枚举值,结果总是乱七八糟的

[复制链接]
1379|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
奔牛滚滚|  楼主 | 2014-2-17 10:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
枚举类型的定义
typedef enum
{
    MMT_DCR0=0 ,
    MMT_DCR1=1,
    MMT_DCR2=2,
    MMT_X0=3
}Meter_Model_Type;
定义为全局静态变量
static Meter_Model_Type ex_meter_type=MMT_DCR1;
函数体
Meter_Model_Type get_meter_type(void)
{
  return ex_meter_type;
}
get_meter_type总是返回不定的值
沙发
奔牛滚滚|  楼主 | 2014-2-17 10:44 | 只看该作者
dwh000 发表于 2014-2-17 10:24
有代码改变了该变量的值?
从贴上来的代码没看到什么问题!

搜索了整个项目文件,只有四处出现这个变量,只有一处有赋值操作.但是怎么也不可能赋范围外的值.奇怪的是调用这个函数,会出现范围外的值.

使用特权

评论回复
板凳
Ketose| | 2014-2-17 11:22 | 只看该作者
本帖最后由 Ketose 于 2014-2-17 11:25 编辑

是不是还定义了其它变量,有可能是操作其它变量越界了。比如数组。
你可以把这个变量定义在最数组的前面试试,但最终还是要解决越界的问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

384

主题

1461

帖子

6

粉丝