c – 外部内联函数在所有翻译单元中必须具有相同的地址.这是怎么回事?

前端之家收集整理的这篇文章主要介绍了c – 外部内联函数在所有翻译单元中必须具有相同的地址.这是怎么回事?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
根据该标准,extern内联函数在所有翻译单元中必须具有相同的地址.

如何在编译器中实现?我的意思是当我编译一些翻译单元时,我不知道其他TU会是什么样的.那我怎么能到处都有相同的地址呢?

解决方法

这取决于实现,但通常由链接解决.每个编译的翻译单元将生成一个包含该函数副本的目标文件,以某种方式标记,以便链接器知道它应该期望(和接受)重复.链接器将包含其中一个,丢弃其他链接器,并解析对该函数的任何引用.
原文链接:https://www.f2er.com/c/111845.html

猜你在找的C&C++相关文章