`
beckshanling
  • 浏览: 256650 次
  • 性别: 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、内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回指令,这样在运行时速度更快。...二、 内联函数是如何在安全和速度上取得折

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

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

    C#静态(static)

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

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

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

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

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

    从C转向C++(中文)

    C 是一种简单的语言。它真正提供的只有有宏...重载、缺省参数、构造和析构函数、自定义操作符、内联函数、引用、友元、 模板、异常、名字空间,等等。用C++比用C 具有更宽广的空间,因为设计时 有更多的选择可以考虑。

    C语言基础教程、小白学习教程

    覆盖了C语言的核心概念,包括语言简介、程序结构、数据类型、运算符、控制结构、函数、数组、指针、结构体与联合体、文件操作、预处理指令、宏定义、高级特性如变长参数列表和内联函数,以及调试和优化技巧。...

    Effective C++(第二版).

    对每个人来说,习惯C++需要一些时间,对于已经熟悉C的程序员来说, ...重载、缺省参数、构造和析构函数、自定义操作符、内联函数、引用、友元、 模板、异常、名字空间,等等。用C++比用C具有更宽广的空间,因为设计时

    程序员必备知识点整理包括编程、面试、刷题等

    本文是总结了自己几个月的复习...1)内联函数和宏定义的区别?(*****) 2)sizeof size length 3)准备 5). 网络编程 6)、++i和i++深入分析 7) 数组的地址++ 8)bool, int, float与零的比较 9) malloc/calloc/real

Global site tag (gtag.js) - Google Analytics