请问:C整形变量赋数值、++、--等是不是原子操作?

2019-12-27 18:58发布

就是如同下面的例子:

int i;

i = 123;
i++;
i--;

诸如此类......
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
36条回答
liufabing
1楼-- · 2019-12-27 23:32
这个也和芯片有关系吧.
落叶知秋
2楼-- · 2019-12-28 00:55
据我所知,i++和i--不是原子操作,被坑过
laoshuhunya
3楼-- · 2019-12-28 01:28
这题目出的不错~~
                                 
dr2001
4楼-- · 2019-12-28 01:40
 精彩回答 2  元偷偷看……
wye11083
5楼-- · 2019-12-28 04:57
dr2001 发表于 2017-5-22 20:27
依赖于体系结构和编译器,不一定是原子操作。

一定不是。因为atom操作必须先raise内存barrier。
snoopyzz
6楼-- · 2019-12-28 09:27
wye11083 发表于 2017-5-22 20:29
一定不是。因为atom操作必须先raise内存barrier。

stm8系列里用cosmic编译器, 8位和16位变量都是原子操作++ --,不会因为中断而得到中间值

一周热门 更多>