[C语言] 多次调用同一函数起冲突

[复制链接]
1914|12
 楼主| loewe552002 发表于 2016-9-6 10:38 | 显示全部楼层 |阅读模式
本帖最后由 loewe552002 于 2016-9-6 10:38 编辑

多次调用同一函数起冲突,什么情况?如下图,怎么办,如何避免这种情况,谢谢大家

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ayb_ice 发表于 2016-9-6 10:43 来自手机 | 显示全部楼层
一个静态变量作为两个状态备份是不行的,混乱了
 楼主| loewe552002 发表于 2016-9-6 11:00 | 显示全部楼层
ayb_ice 发表于 2016-9-6 10:43
一个静态变量作为两个状态备份是不行的,混乱了

把 static bit New_Value;语句改成 bit New_Value;也还是不行,怎么避免呢,谢谢
wuxin999 发表于 2016-9-6 13:22 | 显示全部楼层
把被调用函数再加一个参数可以么
ccxlslr 发表于 2016-9-6 13:47 来自手机 | 显示全部楼层
为什Bit用得这么开心,眼光放远,不要用Bit
flaty 发表于 2016-9-6 14:27 | 显示全部楼层
定义字节 多好  字节对齐,,,,你又不是多线程 怎么能冲突呢,,,,,全局变量 区分不就好了,非的弄函数里面,函数是公共处理模块,公共的放函数里面,不同的 传递参数 或者 全局变量不就好了,你还不会 就写两个一模一样的 函数名不一样也行
w1a2n3g4 发表于 2016-9-6 16:49 | 显示全部楼层
static bit 不是所有的编译器都能编译的
icecut 发表于 2016-9-6 18:14 | 显示全部楼层
看 keil 手册.有一张叫可重入....
datouyuan 发表于 2016-9-7 09:20 | 显示全部楼层
这不是多次调用冲突,不是语法的问题.

你想用1个静态位变量同时保存2个(或以上)位变量,这行不通.
你需要全局保存n个位变量,必须要n个全局位变量.

评分

参与人数 1威望 +1 收起 理由
loewe552002 + 1 赞一个!

查看全部评分

datouyuan 发表于 2016-9-7 09:28 | 显示全部楼层
icecut 发表于 2016-9-6 18:14
看 keil 手册.有一张叫可重入....

可重入可解决中断调用同一函数的,不适用楼主的问题.

楼主没有同时调用同一函数.
pkuzhx 发表于 2016-9-7 10:30 | 显示全部楼层
会有什么冲突?
icecut 发表于 2016-9-7 11:38 | 显示全部楼层
datouyuan 发表于 2016-9-7 09:28
可重入可解决中断调用同一函数的,不适用楼主的问题.

楼主没有同时调用同一函数. ...

好吧.我以为这么弱的问题就没人问,所以没细看.
lz 应该好好学学状态机了.
 楼主| loewe552002 发表于 2016-9-7 13:37 | 显示全部楼层
谢谢大家的指导,我弄懂了什么情况,这个带返回值的边沿函数本身不适合多次调用,现在我已经解决了该问题,和6楼、9楼意思差不多,源文件是我模拟验证该函数的,我的项目里确实会用到位这个函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部