关于inline
  • 板块学术版
  • 楼主Pecco
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/1/21 20:13
  • 上次更新2023/11/5 04:35:10
查看原帖
关于inline
70304
Pecco楼主2021/1/21 20:13

据我所知,对现在的编译器而言,函数是否内联与标不标注inline的关系已经不大了,尤其在O2优化下,编译器自己会做决定。但是这道题中,快速幂加不加inline速度差距很大(见提交1提交2)。

Compiler Explorer上查看两份代码编译出的汇编代码,无论是gcc还是clang,加不加inline除了标号外都只有一个区别,即不加inline会把相应的函数编译成实体,然而,后面并没有调用它,而是直接把函数在调用处展开。

此外,我在本地造了一组随机大数据来测试,发现加不加inline的两份代码所花的时间几乎一致。我很迷惑,是什么导致在洛谷上加不加inline会导致这样大的区别。

2021/1/21 20:13
加载中...