c – 将函数定义放在头文件中

前端之家收集整理的这篇文章主要介绍了c – 将函数定义放在头文件中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果要将函数定义放在头文件中,则会出现三种不同的解决方案:

>将函数标记为内联
>将功能标记为静态
>将函数放在匿名命名空间中

(直到最近,我甚至不知道#1.)那么这些解决方案有什么区别,什么时候我更喜欢哪个?我在标题的世界中,所以我真的需要头文件中的定义.

解决方法

静态和未命名的命名空间版本最终相同:每个翻译单元将包含它自己的函数版本,这意味着给定静态函数f,每个翻译单元中的指针& f将不同,并且程序将包含N个不同版本的f(二进制代码更多).

这不是在标题中提供函数的正确方法,它将提供N个不同的(完全相同的)功能.如果函数包含静态局部变量,那么将有N个不同的静态局部变量…

编辑:使这个更加明确:如果你想要的是在标题中提供一个函数的定义,而不会破坏一个定义规则,正确的方法是使函数内联.

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