2个回答
2013-02-02
展开全部
使用inline关键字修饰的函数,而且在类内部声明且直接定义的函数会被当做内联直接处理。
一般而言,类内部声明即定义的函数就会被当做内联函数。
不过有件事需要注意,对内联的处理是不可以强制干涉的,就是标准未规定编译器对inline关键字处理的要求,他只是一个暗示,对编译器来说可以直接忽略。当然有些编译器会中规中矩的完全按照编写者的意图编译,然而大多数时候都依赖于编译器的判断。
因而,一般有这样的规律:在一行内写完的方法体,在声明部分定义的方法,inline修饰,编译器判断直接插入比栈调用优越的多的部分,这些都有机会成为内联的。对于内联函数,在C兼容方式编译或者独立模块中,编译器不会自动对函数内联,主要原因是:连编模块不一定能找到正确的声明和定义。
一般而言,类内部声明即定义的函数就会被当做内联函数。
不过有件事需要注意,对内联的处理是不可以强制干涉的,就是标准未规定编译器对inline关键字处理的要求,他只是一个暗示,对编译器来说可以直接忽略。当然有些编译器会中规中矩的完全按照编写者的意图编译,然而大多数时候都依赖于编译器的判断。
因而,一般有这样的规律:在一行内写完的方法体,在声明部分定义的方法,inline修饰,编译器判断直接插入比栈调用优越的多的部分,这些都有机会成为内联的。对于内联函数,在C兼容方式编译或者独立模块中,编译器不会自动对函数内联,主要原因是:连编模块不一定能找到正确的声明和定义。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询