使用宏定义保护的头文件中定义了非内联函数
#if !defined(HEADER_RANDOM_H)
#define HEADER_RANDOM_H
void foo()
{
//something
}
#endif
在链接器错误中:在某个.obj文件中已经定义 将函数设置为内联可以正常工作,但我无法理解为什么该函数在第一种情况下就出现了错误。
使用宏定义保护的头文件中定义了非内联函数
#if !defined(HEADER_RANDOM_H)
#define HEADER_RANDOM_H
void foo()
{
//something
}
#endif
在链接器错误中:在某个.obj文件中已经定义 将函数设置为内联可以正常工作,但我无法理解为什么该函数在第一种情况下就出现了错误。
inline
——这将允许该函数被多次定义。另外请注意,inline
没有其他含义,特别是它不会强制编译器内联调用(与普遍的看法相反)。由于它不是内联的,每个翻译单元都会有自己的函数副本,导致该函数被定义多次。