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

本文共 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

你可能感兴趣的文章
微信接口开发报错invalid credential, access_token is invalid or not latest hint
查看>>
nohup 部署springboot 使用命令
查看>>
MQ产品比较-ActiveMQ-RocketMQ
查看>>
暂时没有想好呢。
查看>>
windows服务 MVC之@Html.Raw()用法 文件流的读写 简单工厂和工厂模式对比
查看>>
PHP解析URL并得到URL中的参数
查看>>
【vue.js】绑定click事件
查看>>
字体属性
查看>>
linux的iptables和firewall的区别
查看>>
Install RabbitMQ server in CentOS 7
查看>>
Eureka的优势
查看>>
Android项目实战(一): SpannableString与SpannableStringBuilder
查看>>
idea中的language level 介绍
查看>>
CTSC 2018酱油记
查看>>
php框架排名(Laravel一直第一)
查看>>
行贿罪、受贿罪刑事辩护6大要点
查看>>
java日期格式(年月日时分秒毫秒)
查看>>
看懂UML类图
查看>>
c#串口编程(转)
查看>>
OpenMVG学习笔记
查看>>