如果我在这里和那里使用内联函数怎么办
What if i use inline function here and there
我知道使用内联函数是为了摆脱函数调用。
我看到使用内联函数是使用存储并保持堆栈更空的好方法。
在任何地方使用内联函数是否是一种好的编程实践。
我认为是这样,因为当函数很复杂时,编译器没有义务将内联函数用作内联函数,那么将这个小词inline
附加到每个函数中会是一种不错的方法吗?
我的一般规则是当函数的内容小于或等于调用函数的开销时,使用inline
函数。
一个例子是 getter 或 setter 方法。
程序正常运行后,我将瓶颈部分中的一些函数转换为使用inline
。 但是,这是一种微优化,通常不会像重新设计算法那样节省大量成本。
正如其他人所说,内联函数对构建过程造成严重破坏,因为头文件已更改,并且必须重新生成头文件上的所有依赖项。 非内联函数只需要构建单个翻译单元。
inline 只是对编译器内联函数的提示。编译器还可以内联您在优化时未标记为内联的其他函数。使每个函数内联的问题是,整个函数需要位于标头中,以便可以从多个源文件调用它。这将增加编译时间。我的建议是忘记内联关键字的存在,直到您遇到真正的性能问题。
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 如果我必须覆盖非虚拟成员函数怎么办
- 如果我忽略返回类型shared_ptr函数的返回值怎么办
- C++14 及更高版本是否允许 Lambda 函数的默认参数?如果是这样,怎么办?
- 如何将派生类作为函数参数传递:如果派生类成员不在父类中怎么办
- 如果在函数中使用外部声明怎么办
- 当库函数参数不常量时该怎么办
- 如果我在这里和那里使用内联函数怎么办
- 如果在派生类中定义了虚拟析构函数,但不是层次结构的顶部,该怎么办?C++
- 函数内存不足-我该怎么办
- c++ Koenig(参数依赖)查找:如果不同名称空间中的两个名称空间函数具有相同的参数类型该怎么办?
- 智能指针——如果构造函数抛出怎么办?
- 当我不需要使用函数的所有参数时,我该怎么办?
- 如果我不将返回值放入原型返回值的函数怎么办
- 如果我想使用非标准的函数,并且是由于编译器特定的API,该怎么办
- make_heap() 函数参数 - 如果我不想包含某些元素怎么办?
- 如果在指令之前调用递归函数怎么办