问题标签 [inline-functions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
337 浏览

c++ - 为什么在 C++ 中使用内联函数不会增加二进制大小?

我写了这段代码:

但是为什么这个程序的二进制文件与这个程序没有区别:

0 投票
2 回答
4990 浏览

c - 如果我们将递归函数设为内联会发生什么?

我对内联函数有疑问。内联函数不涉及任何函数调用,而只是在调用内联函数的地方替换函数定义。内联函数与宏不同,具有类型强制。如果递归函数内联会发生什么?

0 投票
4 回答
4066 浏览

c++ - C++ 内联函数原型

我遇到了一个头文件,其中包含内联和常量的各种函数原型声明:

我知道inline关键字允许编译器在调用时(可能)扩展函数,但为什么不包括函数体呢?

如果定义包含在头文件中,对我来说会更有意义:

在原型上使用内联有什么意义?

0 投票
3 回答
561 浏览

c - 将参数传递给 Linux C 内联函数

当从 C 程序调用带有两个整数或指针参数的非inline函数时,它们被传递到寄存器rdirsi. inline是否可以通过将函数的整数/指针参数也传递到寄存器(而不是堆栈)的方式来完成编译?

0 投票
5 回答
2955 浏览

c++ - 函数指针比内联函数运行得更快。为什么?

我在我的电脑(Intel i3-3220 @ 3.3GHz,Fedora 18)上运行了我的基准测试,得到了非常意想不到的结果。函数指针实际上比内联函数快一点。

代码:

编译

'toBigEndian' 循环总是在 0.26-0.27 秒左右完成,而 'toBigEndianPtr' 需要 0.21-0.22 秒。

更奇怪的是,当我删除“total”时,函数指针在 0.35-0.37 秒处变得较慢,而内联函数大约为 0.27-0.28 秒。

我的问题是:

为什么存在“total”时函数指针比内联函数快?

0 投票
2 回答
313 浏览

objective-c - 创建结构时的内联块

这是为了学习=)我知道函数,方法和块都可以声明然后调用。我只是想更好地理解块。

这是我想做的基本想法。

编译器看不到块的返回值,而是将块本身视为导致错误的值。我尝试了几种铸造块的方法,但无法找到解决方案。

有没有办法做到这一点,如果有怎么办?如果没有,还有另一种方法可以使用返回值来执行内联函数吗?

编辑 这是我根据正确答案第一个示例使用的代码示例。

编辑 2这有点脱离了原始问题的背景,但在我阅读问题时总是很欣赏的背景下证明了它的相关性。

此示例代码根据条件更改某些 UILabel 的框架,可选择动画并执行完成块。

请注意,每个标签 setFrame 只被调用一次,导致代码非常易于管理 =D Needles 说,“之前”版本太混乱了,我无法让自己包含它。

积木太棒了!

0 投票
1 回答
50 浏览

static-members - 内联静态函数和静态变量

使静态函数内联有什么用?而不是在两个文件中使用相同的功能;他们还有其他使用静态功能吗?

0 投票
1 回答
193 浏览

c - 如何将 C 宏/内联函数与变量函数名一起使用?

本质上,由于必要,我正在模拟基本 C 中的面向对象编程。为了我自己的方便,我想使用宏或内联函数来减少我需要编写的代码量。对于我的 400 多个变量,每个变量都需要一个类似的结构

我希望有一些聪明的方法可以把它写成一个宏 oneliner,这样我就可以输入类型foo(x),它会用所有代码替换它。我认为困难在于将变量x 用作字符串,以便可以在函数标题中使用。

有没有以前遇到过这种事情的C大师?

0 投票
2 回答
7102 浏览

matlab - Matlab内联VS匿名函数

是否有充分的理由在 MATLAB 中使用内联函数和匿名函数之间进行选择?此处已提出并回答了这个确切的问题,但答案对 MATLAB 新手用户没有帮助,因为代码片段不完整,因此粘贴到 MATLAB 命令窗口时不会运行。有人可以提供可以粘贴到 MATLAB 中的代码片段的答案吗?

0 投票
3 回答
365 浏览

c++ - 用于10000的数组乘法的c ++内联函数

我的任务是两个程序,这是第二个。第一个程序不涉及calculation() 函数,并在程序启动和结束时为程序计时。我的电脑将显示从 0.523 秒到 0.601 秒的任何内容。

第二个任务是为计算创建一个内联函数,我认为我做错了,因为它并不快。我不确定我是否正确地使用了计算函数,因为它包含显示信息,或者内联函数是否应该只关注乘法。无论哪种方式,将数组从主函数中拉出并进入函数都不会更快。

编译器只是忽略它吗?