Q
内联变量的语义
0
A
回答
1
正常情况下,必须为函数和变量(为它们分配空间,变量空间或函数体代码)定义一次函数和变量。内联函数放宽了这一点,以允许多个定义(因为定义通过包含文件被拉入到多个模块中),所有这些都必须相同。如果该函数是实际引用的,而不是内联复制,则通过丢弃除一个副本以外的所有副本并使该副本成为二进制中的正式副本来合并多个定义。
行内变量对于例如:静态类成员。您不必创建一个只有内容为单个成员变量定义的类的主体源文件,而是可以在类头文件中定义静态成员变量并生成多个定义(每个模块包含一个类头)将被合并到二进制文件中的单个实例中,而不会导致编译器或链接器错误。
4
不,不能保证调用内联函数实际上会导致函数被内联。例如,如果内联函数递归调用自身,那么它可能不会被内联。同样,通过函数指针变量的调用通常不能被内联。
如果一个内联函数具有外部连接,然后连接,如果内联函数在多个翻译单位定义期间,链接器选择含有定义的转换单元中的一个,并解析所有剩余的引用(即 ODR - 不是由编译器内联的),将该函数添加到所选翻译单元中的定义中,放弃其余定义。内联变量的工作方式相同。
相关问题
- 1. Ext.XTemplate中的内联变量
- 2. ASP.NET UpdatePanel - 内联变量
- 3. 内联空变量pHP
- 4. SQL内联变量赋值
- 5. 内联bash脚本变量
- 6. BASH:定义变量内的变量?
- 7. 内联术语定义的公约?
- 8. 从内联函数内更新变量
- 9. 定义变量中的C++内联汇编
- 10. 变量未定义,尽管内部被定义if语句
- 11. 内联更新语句替换字符串与变量
- 12. Excel VBA内联IF语句使变量0
- 13. gcc的内联汇编输入变量
- 14. PHP的mailto:变量与faicon内联
- 15. R中内联的变量扩展
- 16. 变量有内在联系,但没有定义
- 17. 如何为内联变量模板创建自定义点?
- 18. Java内存模型中本地最终变量的语义?
- 19. php if语句内/单个变量内?
- 20. 开关语句中的变量定义
- 21. 语义UI:重写site.variables中的变量
- 22. Python中**星号变量**的语义
- 23. DB ASM变量内联汇编C++
- 24. AVR内联汇编:注册到变量?
- 25. 取消引用使变量内联
- 26. 将mysql值赋值给内联变量
- 27. 内联bash时间变量扩展
- 28. Powershell concat字符串和变量内联?
- 29. python灵活,内联变量赋值
- 30. 在线获得内联js变量