- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我们有一个头文件:
Header1.h
#include "Header2.h"
class A
{
public:
void Function();
}
inline void A::Function()
{
// Code ...
OtherFunction(); // Function from Header2.h
// Code ...
}
如果编译器实际上选择内联Function
调用OtherFunction
会发生什么:
OtherFunction
定义可用于当前翻译单元,它是否也可能内联在 Function
的主体中? (基本上可以使用嵌套内联吗?)OtherFunction
定义对于当前翻译单元不可用,它是否仍是一个简单的函数调用,而它周围的代码被内联? (在编译器选择内联 Function
的情况下)最佳答案
当您在发布配置中构建应用程序时,大多数现代编译器实际上会为您内联函数 - OtherFunction
被声明为内联/正常的效果与编译器决定哪个是内联/正常的效果相同更好的选择。我当然知道这会发生在 MSVC10 及更高版本的编译器 (Visual Studio) 中。事实上,内联任何你想要的,但编译器最终控制内联的内容。
一个例子是,如果你的函数调用以某种方式链接起来,那么在 inline
之后 push 和 pop 操作就没有意义了,你的函数将不会被内联(即使你将它们声明为是内联
d)
如果它能让事情变得更简单 - 请参阅:
When to use inline function and when not to use it?
Benefits of inline functions in C++?
更重要的是,How deep do compilers inline functions?
已经有了很好的解释。
关于c++ - 如何处理内联函数体内的函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27878579/
因此,我的flutter应用程序运行正常,但是我想对其进行一些更改。 我要执行的第一个更改是创建一个水平滚动窗口小部件,该窗口小部件的图像可以单击以更改工作站。 但是要做到这一点,我首先需要将两个小部
如何在 Bootstrap 模态的主体内设置 div 样式?这是我的模型: text ') .okBtn('ok') .open();">Open Model 我的CSS: @M
我有一个简单的触发器,它在 SQL Fiddle 上运行,但它不允许我将 INSERT STATEMENT 移动到触发器的主体内。 my code on sqlFiddle我只是想移动这条线 INSE
我是一名优秀的程序员,十分优秀!