2016-02-21 70 views
1

最近,我在整个inline语句来的两个用途在头文件来例如(1)我听说使用inline是一种很好的风格。关于(2)如果使用inline,我不确定它是否会改变任何事情。 那么,在任何一种情况下使用inline都会是不错的风格,会影响编译吗?在线声明类/结构

回答

1

在第一种情况下,不需要inline,因为已经内联的代码已经作为类成员同时定义和声明。

inline在哪里我的意思是说,每个翻译单元将得到自己的版本的方法,不会干扰链接。

在第二个例子,而不inline你会得到自one definition rule链接错误不是由翻译单元尊重:该方法被声明的类内,但外部定义,这是不够的编译器,你必须明确指定每个翻译单元都会得到它自己的方法副本(以后会进行优化)。

记住,这些因素将不会应用于意味着作为省音,在调用点与它的身体直接替换其调用该方法的直列意义,这是优化编译器的责任,这将照顾它,你不应该打扰暗示它。

+0

那么你会认为(1)是不错的风格?你能否稍后向你提供一些陈述? – holzkohlengrill