b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

内联函数在C +中的优势?

电脑杂谈  发布时间:2020-06-29 08:01:14  来源:网络整理

c内联函数_c语言%c函数_c#调用c托管的c函数

优点通过在需要的地方插入代码,您的程序将在函数调用和返回部件上花费更少的时间. 即使它变得更大,它也应该使您的代码运行得更快(请参见下文). 内联琐碎访问器可能是有效内联的一个示例. 通过将其标记为内联,可以将函数定义放在头文件中(也就是说,它可以包含在多个编译单元中,而不会受到链接程序的抱怨). 缺点可以使代码变大(也就是说,如果对非平凡的函数使用内联). 因此,它可能导致分页并阻碍编译器优化. 它会稍微破坏您的封装,因为它公开了对象处理的内部(但是,每个“私有”成员都将执行相同的操作). 这意味着您不能在PIMPL模式下使用内联. 它稍微破坏了您的程序包2: C +内联在编译时已解决. 这意味着,如果更改内联函数的代码,则需要使用它重新编译所有代码,以确保在标头中使用时将对其进行更新(出于相同的原因,我避免使用函数参数的默认值) file,它将使头文件变大c内联函数,以便用户不关心的代码稀释了有趣的信息(例如类方法的列表)(这就是为什么我在类中声明内联函数,但是将在类主体后面的标题,而不是类主体中的标题). 内联魔术编译器可以内联或不内联您标记为内联的函数;它也可能决定在编译或链接时内联未标记为内联的函数. 内联的工作类似于编译器控制的复制/粘贴,这与预处理器宏有很大不同: 宏将被强制内联,将污染所有名称空间和代码,并且不容易调试,即使编译器认为它是低效率的也是如此. 也可以实施. 在类主体中定义的类的每个方法都被视为“内联”(即使编译器仍可以决定不对其进行内联). 虚拟方法不是必不可少的. 但是,有时,当编译器可以确定对象的类型(即,在同一函数体中声明和构造对象)时,即使是虚函数也将是内联的,因为编译器准确地知道了对象的类型. 模板方法/函数并不总是内联的(它们在标题中的存在并不会使它们自动内联). “内联”之后的下一步是模板元编程. 也就是说,通过在编译时“内联”您的代码c内联函数,有时编译器可以推断出函数的最终结果. 因此,复杂的算法有时可以归结为返回值42;宣言. 这对我来说是一个极端的衬线. 在现实生活中很少发生,它使编译时间更长,不会使您的代码膨胀,并使您的代码更快. 但是,就像圣杯一样,不要尝试将其应用到任何地方,因为大多数处理无法通过这种方式解决. 但是,这非常酷. -p


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-262127-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...