inline 定义普通函数和类的成员函…
2014-02-26 14:11
246 查看
内联函数和普通函数区别:
内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。
1、当你定义一个内联函数时,在函数定义前加上 inline 关键字,并且将定义放入头文件:
inline void f(int i, char c)
{
//
...
}
2、内联函数体不能包含循环语句、switch语句。
3、内联函数要先定义、后调用,不能先声明内联函数原型,在定义、调用。
4、注意区分内联函数和内联成员函数
在类内,可以先用inline声明某一个成员函数为内联函数,然后再类外进行定义,但是普通内联函数不能这么做(上面已说明)。
内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。
1、当你定义一个内联函数时,在函数定义前加上 inline 关键字,并且将定义放入头文件:
inline void f(int i, char c)
{
//
...
}
2、内联函数体不能包含循环语句、switch语句。
3、内联函数要先定义、后调用,不能先声明内联函数原型,在定义、调用。
4、注意区分内联函数和内联成员函数
在类内,可以先用inline声明某一个成员函数为内联函数,然后再类外进行定义,但是普通内联函数不能这么做(上面已说明)。
相关文章推荐
- inline 内联函数详解
- 函数指针--成员函数(静态,非静态)&普通函数
- C++:为什么inline函数的定义要放在头文件里 + inline和宏定义的区别(暂未体会到)
- ACM: uva 11174 - Stand in a Line
- C#&&Java-----C#中和Java中把主函数定义成静态成员函数的原因
- static"不应在文件范围内定义的成员函数上使用
- Command-line Processing in Korn …
- 类模板中的函数模板的定义和调用(不是模板类中的普通成员函数)
- Check a loop in a list with line…
- C++普通成员函数的重定义
- 宏定义函数指针类型&函数返回左值类值 1。宏定义不分配内存,变量定义分配内存。 2。宏名和参数的括号间不能有空格 3。宏替换只作替换,不做计算,不做表达式求解 //下面是正确的标准的写法 typedef int(FUNC1)(int in); ty
- 隐式类型转换与非成员函数(effective C++ 条款24&46)
- Kernel开发 - SubmittingPatches,有关ifdef和static inline & macro
- 第四周上机任务--任务一--用VS2008设计一个三角形类--给各个成员函数定义
- inline virtual函数会导致编译器如何处理,是展开还是是用vtable
- 《thinking in java》学习笔记13
- 《thinking in java》学习笔记16
- typedef 和函数指针问题深入总结
- DRUPAL6 中定义hook_menu() 参数