博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
atomic integer operations P176
阅读量:6546 次
发布时间:2019-06-24

本文共 546 字,大约阅读时间需要 1 分钟。

typedef struct {        int counter;} atomic_t;#ifdef CONFIG_64BITtypedef struct {        long counter;} atomic64_t;#endif

linux 内核使用特殊的数据类型atomic_t来代替直接使用C语言的整型,是出自以下几个原因:

(1)关于atomic_t的函数只接受atomic_t类型

(2)使用atomic_t类型可以避免编译器的优化,原子操作对于使用正确的内存地址很重视。

(3)可以避免CPU的体系结构的问题

 

这里就有个问题,为什么使用结构体就可以避免原因(2),编译器没有优化之,

google了下,得出。

 

Within a structure object, the non-bit-field members and the units in which bit-fields reside have addresses that increase in the order in which they are declared.

转载于:https://www.cnblogs.com/lxgeek/archive/2012/03/30/2426137.html

你可能感兴趣的文章
Intellij IDEA 构建Spring Web项目 — 用户登录功能
查看>>
[AHOI2013]作业
查看>>
git push被忽略的文件 处理
查看>>
使用makecontext实现用户线程【转】
查看>>
C# CancellationTokenSource和CancellationToken的实现
查看>>
PCIE BAR空间
查看>>
如何用数学课件制作工具画角平分线
查看>>
VS2015 中统计整个项目的代码行数
查看>>
UWP控件与DataBind
查看>>
bash: php: command not found
查看>>
XVIII Open Cup named after E.V. Pankratiev. Eastern Grand Prix
查看>>
《高性能mysql》到手
查看>>
(转)关于如何学好游戏3D引擎编程的一些经验
查看>>
使用Kotlin为你的APP自定义一个统一的标题栏
查看>>
EF各版本增删查改及执行Sql语句
查看>>
拓扑排序
查看>>
jQGrid API
查看>>
Bzoj1758: [Wc2010]重建计划
查看>>
redis集群部署及踩过的坑
查看>>
j2EE监听器-listener
查看>>