求问 static inline 和 extern inline 的含义
首先,关于inline就够烦人了,有的书上说inline关键字要加在定义前,声明时可以省略,有的说声明时加上inline函数就变成内联型,有的说声明和定义形式要保持一致。在一个类中声明一个函数,函数的实现在外部,无论是仅仅在内部声明处加inline,还是在外部实现处加inline,或是两个地方都加,编译均能通过,而且也无法通过调试的办法看出对程序到底有啥影响。搞不清到底要怎么写这个inline才比较好,不过可以肯定的是,inline函数的定义部分要放在头文件里,声明和定义分开放会编译出错。
而且inline还可以和extern关键字、static关键字合用,在网上搜了一下,linux之父linus说过 "static inline" means "we have to have this function, if you use it, but don't inline it, then make a static version of it in this compilation unit". "extern inline" means "I actually _have_ an extern for this function, but if you want to inline it, here's the inline-version".
这话说的云里雾里的,谁能解释一下,说说你对static inline 和 extern inline用法的理解。