关于inline ,以前没能认识清楚。牵扯到编译器的一些问题。内联函数在把函数代码替换到条用他{}规定域。
而且能知道的是,这样的,在第一次定义一个 inline void foo(){
}之后,如果后面还要在其他域中定义相同名字,相同修饰符号的内联函数的时,一般都定义为相同的 function body
即使你不那样定义,在vs2005中,编译器也是这么认为的,在编译的时候,把第一个 解析到的inline void foo()作为一个判决,以后都以这个解析为蓝本来 do inline。
还有就是在声明函数的时候,是不产生的实际代码的。在在编译的时候,也不会先去编译声明的那个函数(定义其他文件的函数),而是去编译在这个域中有函数体的那个函数。
举例:(是教研室王明独创出来的问题)