内联函数
宏定义带来的问题
#define abs(a) ((a) 0 ? –(a):(a))
int m = -2, ret=abs(++m); abs(++m);
==
ret=((++m) 0 ? –(++m) : (++m))
最后ret的值为是0。问题出在编
译器在遇到宏时只是进行简单的
宏替换。
2
宏的好处是没有类似于普通函数调用时的系统开销,
并且宏定义的参数可以适宜大多数类型的数据。
宏定义也有缺点:
有时会产生不可预料的副作用
用inline定义一个内联函数
C++中的内联函数既具有宏定义的优点,又克服了
宏定义的缺点。
在函数名前加上“inline” ,即为内联函数。
inline void func(int a, int b);
在编译时在调用func的地方用函数体进行了替换,
所以程序执行时
您可能关注的文档
- 1-1-C语言符号VisualBasic.NET程序设计.pdf
- 1 JAVA语言与面向对象的程序设计VisualBasic.NET程序设计.pdf
- 01-Basic KnowledgeVisualBasic.NET程序设计VisualBasic.NET程序设计.pdf
- 1-2-C语言运算符VisualBasic.NET程序设计.pdf
- 1-指针的概念VisualBasic.NET程序设计.pdf
- 02_1-Objects and TypesVisualBasic.NET程序设计VisualBasic.NET程序设计.pdf
- 02_2-OperatorsVisualBasic.NET程序设计VisualBasic.NET程序设计.pdf
- 02_3-VariablesVisualBasic.NET程序设计VisualBasic.NET程序设计.pdf
- 2-动态内存管理.pdf
- 2-二维数组和多维数组.pdf
- 广东省深圳市福田区侨香外国语学校2025届数学八上期末经典模拟试题含解析.doc
- 2025届湖南省浏阳市初三下十月阶段性考试试题语文试题含解析.doc
- 江西省江西师大附中2026届高三第六次质量检查生物试题含解析.doc
- 江苏省连云港市灌南县2025年三上数学期末质量跟踪监视模拟试题含解析.doc
- 银川科技学院《社交礼仪》2023-2024学年第一学期期末试卷.doc
- 江苏省南京雨花台区七校联考2025届初三下学期第一次周考语文试题(重点班)试题含解析.doc
- 山东省滨州市十二校2025届高一语文第二学期期末综合测试试题含解析.doc
- 西昌学院《经济法》2021-2022学年第一学期期末试卷.doc
- 邯郸市邯山区2024-2025学年四下数学期末复习检测模拟试题含解析.doc
- 安徽林业职业技术学院《毒理学基础A》2023-2024学年第二学期期末试卷.doc
原创力文档

文档评论(0)