关于inline函数和普通函数编译的问题?
最近研读c++primer,受益匪浅。
遇到一个问题,请大家帮忙看看。
一般为了避免函数的重复定义,我们通常不把函数定义(不是声明)放在头文件中,
然而inline函数却应该放在头文件中,这是为什么呢?
我的理解是inline函数在调用是内联展开,编译时并不开栈,所以不会引起重复定义,普通函数就正好相反,不知道这样理解是否正确?
另外想问问,inline函数和一般函数编译时刻,还有什么区别呢?具体是想问问编译时刻,函数是怎么处理的,(定义就开栈,记录相应入口地址,分配变量存储区等等?)
请大家推荐几本书看看,谢谢了!