内联函数和外部链接

scd*_*dmb 7 c++

在这个答案/sf/answers/293558891/中写道,"内联函数默认具有外部链接".但是,默认情况下不可能链接内联的内容.那么说内联函数有外部联系是什么意思呢?

Mik*_*our 10

名称的链接与定义的位置或方式无关,只与名称可用于引用特定对象或函数的位置无关.

声明内联函数不会强制它内联; 它只是放宽了一个定义规则,允许在每个翻译单元中使用它的定义(并且在每个翻译单元中需要一个定义),以便更容易内联.如果编译器决定不内联对其的特定调用,或者如果您获取它的地址,则不会阻止生成非内联版本.

所以"外部联动"和"内联"并不是排他性的; "外部链接"意味着该功能可以在任何翻译单元中引用,"内联"意味着它必须在任何调用它的翻译单元中定义.