因为inline会实现内联替换,inline是要加到函数实现上而非声明,加到声明上编译器也会忽略的。内联展开是在编译时进行的,只有链接的时候源文件之间才有关系。 所以内联要想跨源文件必须把实现写在头文件里。如果一个inline函数会在多个源文件中被用到,那么必须把它定义在头文件中。 不然在编译的时候,编译器会找不到那个内联函数的。
inline函数的定义要放在头文件
于 2022-02-24 21:39:43 首次发布
因为inline会实现内联替换,inline是要加到函数实现上而非声明,加到声明上编译器也会忽略的。内联展开是在编译时进行的,只有链接的时候源文件之间才有关系。 所以内联要想跨源文件必须把实现写在头文件里。如果一个inline函数会在多个源文件中被用到,那么必须把它定义在头文件中。 不然在编译的时候,编译器会找不到那个内联函数的。