1.强制不内联

一个函数,如果代码量比较少的话,用 -O3优化开关的话,gcc有可能将这个函数强制内联(inline)即使,你在函数前没有写inline助记符。

如果是一个手写汇编的函数,那样的话很有可能破坏参数。gcc里有强制不内联的,用法如下

void foo() __attribute__((noinline));

但是有的gcc可能会忽略 noinline。

那么你可以将你实现的这个函数写到调用函数之后,就不会被inline了。这是因为编译器gcc只内联当前函数之前可见(实现代码在前)的函数。

2.优化时无法识别inline函数中的ASM汇编
    当GCC尝试内联一个函数时,如果该函数中存在内联汇编,则该汇编语句块可能被丢弃;
...
__inline__ __attribute__((always_inline)) int Increment(int volatile *add, int inc)
{
    int res;
    __asm__
    (
    "lock \n\t"
    "xaddl %0,(%1)\n\t"
    :"=r"(res)
    :"r"(add),"0"(inc)
    :"memory"
    );
    return res;
}

强制内联和强制不内联相关推荐

  1. 物联卡长时间不用会过期吗?关于物联卡强制激活和物联卡销户规则

    很多用户反应,对于物联卡的激活不太了解,今天,51物联卡就为你介绍一下正规的物联卡激活方式. 企业认证:企业用户先提供营业执照.法人信息.设备信息等资质,发卡后将SIM卡插入物联网设备,设备通电后,S ...

  2. MySQL联合查询语法内联、左联、右联、全联

    MySQL联合查询效率较高,以下例子来说明联合查询(内联.左联.右联.全联)的好处: T1表结构(用户id,用户名,密码)    userid   username  password 1   jac ...

  3. HTML行内元素/行级元素/内联元素/行标签/内联标签/行内标签/行元素

    文章目录 行内元素的特点 行内元素清单 可变元素列表 inline element. 也叫行级元素.内联元素. 行内元素默认设置宽度是不起作用,需设置 display:inline-block 或者 ...

  4. java内联_JAVA中的内联函数

    在说内联函数之前,先说说函数的调用过程. 调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到 转去执行该函数前的地方.这种转移操作要求在转去前要保护 ...

  5. 云联惠认证时间_云联惠强制关闭真正原因是什么?

    展开全部 云联惠强制关闭的原因是云联惠为特大网络传销犯罪62616964757a686964616fe78988e69d8331333433616232团伙. 广东云联惠网络科技有限公司成立于2014 ...

  6. 抽象数据类型(顺序栈)、断言、包含头文件、内联函数、非内联成员函数[C++ In Action][4]...

    1. C++中的接口与实现思想, 即类的定义.数据成员的定义.函数原型在接口文件中进行, 实现代码放在实现文件中 2. 函数调用开销:调用前要先保存寄存器,并在返回点恢复:复制实参:程序必须转入一个新 ...

  7. C++的内联函数和非内联函数的区别

    一.内联函数和非内联函数的定义 1.内联函数 inline void test(); void test() { cout<<"test"<<endl; } ...

  8. 将html中的style内联样式转换为行内样式

    需求:因为有一段html需要传递到其他的地方,内联样式可能与其他的样式冲突,所以要将写在style标签中的内联样式转换为行内样式 思路: /*** 参数接收html字符串* 将内联样式表里面的样式改为 ...

  9. mysql左联右联区别_Mysql----关于内联,左联,右联,全联的使用和理解

    准备工作:新建两张表 表一:student 填充内容:编号,姓名,班级 表二:school 填充内容:编号,班级,专业 这两张表建好了,意为班级选课表,两张表没有任何主外键的关系,下面进行内联,左联, ...

  10. 关于苹果APP集成Sign in with Apple后,APP内注册需要强制绑定手机号,审核被拒问题

    苹果开发者在2019年开始提供了sign in with Apple的一系列接口,并且对于大部分苹果应用都是需要集成这种苹果登录的功能. 集成的方法在其他地方容易查得到,这里不赘述,直奔主题. 如果A ...

最新文章

  1. 计算机系统通过执行通道程序完成数据,批量数据传送
  2. dev layoutview 怎么显示大小_「转」磁盘满了,为啥du却显示还有很大空间?
  3. NOD32升级ID获取器For流星无语更新了
  4. android点击灰色背景图片,android button按键失去焦点和点击后改变背景图片
  5. mysql客户端保存数据乱码_mysql客户端数据乱码问题
  6. python log日志级别_python – 日志记录:如何为处理程序设置最大日志级别
  7. metadata.js
  8. python开发最受欢迎的十款工具
  9. 经典排序算法(二十一)--Cycle Sort
  10. 12 自定义标签/JSTL标签库/web国际化/java web之设计模式和案例
  11. kubernetes RC(Replication Controller)和RS(Replicaset)的作用和区别
  12. 计算机组成原理期末笔记,计算机组成原理复习笔记.pdf
  13. 软件的生命周期与特点
  14. 【预测模型】基于麻雀算法优化最小二乘支持向量机实现数据分类matlab代码
  15. java讲师助理面试题_面试Java开发师常问到的5个问题(附答案)
  16. 同一个服务器装oracle,windows下同一台服务器上装有两个ORACLE数据库实例,通过命令启停数据库...
  17. e4a和php教程,2019开源影视APP优化运营版+对接苹果cms10+全套类库E4A资源+开发文档+搭建教程源码...
  18. android adb命令唤醒屏幕,如何使用adb命令打开和关闭屏幕?
  19. ps怎么将png做成gif_用ps将一组图片序列做成GIF
  20. 杨卫华:新浪微博的架构发展历程(转)

热门文章

  1. 怎么判断一篇英文论文是不是综述
  2. “我应为王”,比尔盖茨名言--author :邵京国
  3. 【软件过程管理】课程知识点梳理及习题
  4. windows 下安装软件乱码
  5. 《变形金刚2》剧情细节大揭秘(100%剧透!)
  6. php类和对象教程,php类和对象
  7. Android11以上版本使用高德定位,定位成功,卫星数一直为0
  8. L2-027. 名人堂与代金券,结构体排序
  9. [读书笔记]How to Get the Most of Studying
  10. 【架构设计】如何实现3ms内从1000w级别的用户里面随机抽奖出100名用户