打印
[C语言]

多次调用同一函数起冲突

[复制链接]
1572|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
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 | 只看该作者
把被调用函数再加一个参数可以么

使用特权

评论回复
5
ccxlslr| | 2016-9-6 13:47 | 只看该作者
为什Bit用得这么开心,眼光放远,不要用Bit

使用特权

评论回复
6
flaty| | 2016-9-6 14:27 | 只看该作者
定义字节 多好  字节对齐,,,,你又不是多线程 怎么能冲突呢,,,,,全局变量 区分不就好了,非的弄函数里面,函数是公共处理模块,公共的放函数里面,不同的 传递参数 或者 全局变量不就好了,你还不会 就写两个一模一样的 函数名不一样也行

使用特权

评论回复
7
w1a2n3g4| | 2016-9-6 16:49 | 只看该作者
static bit 不是所有的编译器都能编译的

使用特权

评论回复
8
icecut| | 2016-9-6 18:14 | 只看该作者
看 keil 手册.有一张叫可重入....

使用特权

评论回复
9
datouyuan| | 2016-9-7 09:20 | 只看该作者
这不是多次调用冲突,不是语法的问题.

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

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
loewe552002 + 1 赞一个!
10
datouyuan| | 2016-9-7 09:28 | 只看该作者
icecut 发表于 2016-9-6 18:14
看 keil 手册.有一张叫可重入....

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

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

使用特权

评论回复
11
pkuzhx| | 2016-9-7 10:30 | 只看该作者
会有什么冲突?

使用特权

评论回复
12
icecut| | 2016-9-7 11:38 | 只看该作者
datouyuan 发表于 2016-9-7 09:28
可重入可解决中断调用同一函数的,不适用楼主的问题.

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

好吧.我以为这么弱的问题就没人问,所以没细看.
lz 应该好好学学状态机了.

使用特权

评论回复
13
loewe552002|  楼主 | 2016-9-7 13:37 | 只看该作者
谢谢大家的指导,我弄懂了什么情况,这个带返回值的边沿函数本身不适合多次调用,现在我已经解决了该问题,和6楼、9楼意思差不多,源文件是我模拟验证该函数的,我的项目里确实会用到位这个函数

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝