`
beckshanling
  • 浏览: 256926 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

内联函数和宏

    博客分类:
  • C++
阅读更多

C++中函数前面加关键字 inline ,表示该函数是内敛函数。
inline int Fun(int x)
{
return ((x > 5) && (x < 10)) ? x : 0;
}
注意此时头文件要用名字空间形式
#include <iostream>
using namespace std;

内敛函数的功能和宏定义(#define )差不多,即在编译阶段进行替换,减少运行时间,提高运行效率。区别是宏定义没有语法检查,内敛函数有语法检查,更不会出错!

宏展开只是简单的文本替换,有表达式换表达式,有参数换参数,
int c = 7;
int d = Fun(++c);
这里应该换为( (++c>5)&&(++c<10)? (++c):0 )
执行结果应该是10,10

但注意,如果改为内敛函数,这里结果应该是8,8. 因为函数是单向值传递!而宏替换是简单的文本替换!

分享到:
评论

相关推荐

    c++中的宏、内联函数和宏的比较

    c++中的宏、内联函数和宏的比较 c++中的宏、内联函数和宏的比较 c++中的宏、内联函数和宏的比较 c++中的宏、内联函数和宏的比较 c++中的宏、内联函数和宏的比较

    内联函数和宏的区别的分析与总结

    内联函数和宏的区别,这是好多新手容易感觉困扰的地方 ,我也曾经困惑,故分享此资料,希望共同进步

    预处理宏和内联函数的区别

    本文主要介绍了预处理宏和内联函数的区别,转载的,希望大家一起分享

    浅谈内联函数与宏定义的区别详解

    内联函数在运行时可调试,而宏定义不可以;2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会; 3.内联函数可以访问类的成员变量,宏定义则不能; 4.在类中声明同时定义的成员...

    内联函数的使用_内联函数的使用_

    MATLAB中的内联函数借鉴了C语言中的内联函数,在C语言中,内联函数是通过编译器控制来实现的,它只在需要用到的时候,内联函数像宏一样的展开,所以取消了函数的参数压栈,减少了调用的时间和空间开销。在MATLAB中也...

    宏和内联函数的作用和用法

    宏和内联函数的作用和用法

    深入探讨:宏、内联函数与普通函数的区别

     内联函数与带参数宏定义的另一个区别是,内联函数的参数类型和返回值类型在声明中都有明确的指定;而带参数宏定义的参数没有类型的概念,只有在宏展开以后,才由编译器检查语法,这就存在很多的安全隐患。 使用...

    宏和内联函数的区别[归类].pdf

    宏和内联函数的区别[归类].pdf

    详解C++中的内联函数和函数重载

    内联函数(内嵌函数,内置函数) 调用函数时需要一定的时间和空间的开销。C++提供一种提高效率的方法,即在编译时将函数调用处用函数体替换,类似于C语言中的宏展开。这种在函数调用处直接嵌入函数体的函数称为内联...

    C语言中的内联函数(inline)与宏定义(#define)详细解析

    先简明扼要,说下关键:1、内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回指令,这样在运行时速度更快。...二、 内联函数是如何在安全和速度上取得折

    嵌入式C语言学习记录( 转为pdf方便阅读 )

    内联函数和宏都是C语言中用于提高性能的技术。内联函数用于将函数体inline展开,以减少函数调用开销,而宏则用于将代码展开,以减少代码大小。两者都可以提高代码性能,但需要注意使用时的限制和注意事项。 5. 预定...

    内联函数inline与宏定义深入解析

    内联函数的优越性:一:inline定义的类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换(像...说明:类A的成员函数readTest()和setTest()都是内联函数,readTest()函数的定义体被放在类声明之中,因

    C#静态(static)

    一、函数  函数的引入可以减少程序的目标...引入内联函数和宏函数正是为了解决这个问题,提高程序的运行效率。  在程序编译时,编译器将程序中出现的内联函数(宏函数)的调用表达式用内联函数(宏函数)的函数体来

    c++内联函数(inline)使用详解

    内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如 代码如下:#define TABLE_COMP(x) ((x)&gt;0?(x):0)就定义了一个宏。为什么要使用宏呢?因为函数的调用必须要将程序执行的顺序...

    GIS程序设计实验报告(c++).pdf

    (1)内联函数与无参数的宏定义和普通函数的区别是什么?使用内联函数应注意什么问题? 内联函数是一种特殊的函数,它可以在编译时将函数体展开,从而提高程序的执行效率。与无参数的宏定义不同,内联函数是编译器...

    如何区分C++中的inline和#define宏

    (1)什么是内联函数?...1、 inline 定义的类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换,(像宏一样展开),没有了调用的开销,效率也很高。 2、 很明显,类的内联函数也是一个真

    浙江大学面向对象程序设计OOP.pdf

    内联函数可以提高程序的执行效率,因为编译器可以将其展开为宏代码。 静态成员和常量指针 静态成员是属于类的成员,而不是对象的成员。静态成员可以被所有对象共享。常量指针是指针本身是常量,或者指针所指向的...

    C++ 开发面试题必知必会-V1版.pdf

    应该使用 inline 内联函数,即编译器将 inline 内联函数内的代码替换到函数被调用的地方。优点:在内联函数被调用的地方进行代码展开,省去了函数调用的时间,从而提高程序运行效率;相比于宏函数,内联函数在代码...

Global site tag (gtag.js) - Google Analytics