前端之家收集整理的这篇文章主要介绍了
c – 将函数定义放在头文件中,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果要将
函数定义放在头
文件中,则会出现三种不同的
解决方案:
>将函数标记为内联
>将功能标记为静态
>将函数放在匿名命名空间中
(直到最近,我甚至不知道#1.)那么这些解决方案有什么区别,什么时候我更喜欢哪个?我在标题的世界中,所以我真的需要头文件中的定义.
静态和未命名的命名空间版本最终相同:每个翻译单元将包含它自己的
函数版本,这意味着给定静态
函数f,每个翻译单元中的指针& f将不同,并且程序将包含N个不同版本的f(二进制
代码更多).
这不是在标题中提供函数的正确方法,它将提供N个不同的(完全相同的)功能.如果函数包含静态局部变量,那么将有N个不同的静态局部变量…
编辑:使这个更加明确:如果你想要的是在标题中提供一个函数的定义,而不会破坏一个定义规则,正确的方法是使函数内联.
原文链接:https://www.f2er.com/c/116476.html