C++ 中宏函数和inline

转载 2013年12月05日 19:18:25

摘自问答中的答案

其实我倒觉得#define 并不是人们想象的那么不好

用define出现问题的地方是比较少碰到的:
如果只是用define定义一些常量或一些函数的简写是非常有用的:
比如:
  1:#define PI          3.1415926
  2:#define out(t)      return t;
  3: #define until(x)    while(!(x))
  4:#define nextCDT(X)  }else if(X){
象上面的一些东西用inline是很难做到的。
用define 一个很重要的地方是:
#define func(x) (x)*(x)
如果只是传一个常量或变量倒无所谓
一旦传递的是类似i++/i--之类的东西时就有问题了
对于这种情况我们最好用inline这就是inline的好处
如果是下面的情况:
   #define func(x) ((x)+1)
或 #define Sin(x)  sin(x) //在定义体中参数只出现了一次
  我想用define 比用inline效率更高

  既然define 存在就有她存在的理由 我们要善于利用

他们的优点而避开他们的缺点。


1、内联函数的决定权在于编译器,编译器对过大的内联函数不给于理会。

2、

C语言里面的内联函数(inline)与宏定义(#define)探讨

http://huxiongwei.spaces.eepw.com.cn/articles/article/item/85841 C语言里面的内联函数(inline)...
  • wangyin159
  • wangyin159
  • 2014年07月08日 21:06
  • 950

C++inline函数简介

1.inline函数简介 inline函数是由inline关键字来定义,引入inline函数的主要原因是用它替代C中复杂易错不易维护的宏函数。 2.编译器对inline函数的处理办法 inl...
  • K346K346
  • K346K346
  • 2016年07月31日 22:39
  • 4000

小问题大思考之C++里的inline函数

inline,一个神奇的关键字。有了它,函数,你同时就可以获取函数和宏的优点。inline定义的函数,比起没有inline的函数来说,没有执行函数调用所带来的负担(对此可参见《C++程序的内存布局》)...
  • imyfriend
  • imyfriend
  • 2013年10月13日 11:51
  • 7990

类成员声明与定义前加inline的区别(C++ inline 函数)

转载自:http://www.cnblogs.com/berry/articles/1582702.html 参考:http://msdn.microsoft.com/zh-cn/library/wi...
  • fengzizhuang
  • fengzizhuang
  • 2014年03月18日 20:34
  • 2556

C++模板的编译与连接及inline 和 static 的说明

C++的编译是以.cpp文件为单位进行。编译之前存在一个预处理的过程:文件包含,条件编译和宏展开。文件包含是将include 的头文件中的内容复制到.cpp文件中。一般接口与实现的分离设计,头文件中通...
  • zhouguoqionghai
  • zhouguoqionghai
  • 2015年11月17日 18:28
  • 3198

C++中虚函数不能是inline函数的原因

在C++中,inline关键字和virtual关键字分别用来定义c++中的内联函数和虚函数,他们在各自的场合都有其各自的应用,下面将简单介绍他们各自的功能,然后在说明为什么一个函数不能同时是虚函数和内...
  • flydreamforever
  • flydreamforever
  • 2017年03月11日 22:06
  • 765

C++中的内联函数inline总结

原文:http://blog.csdn.net/coder_xia/article/details/6723387 突然看到C++Primer中讲到,对于vector的一个循环,调用语句:(示例...
  • u011487593
  • u011487593
  • 2015年04月28日 09:51
  • 1259

C++ 语言宏定义函数的使用(定义单行和多行)

昨天笔试问的,不会….. 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。宏...
  • u012851419
  • u012851419
  • 2016年04月25日 15:54
  • 3020

inline成员函数 以及与宏定义区别

上一篇文章我提到inline函数对性能可能有较大的影响,这就促使我对这个inline函数做一个综合的深入研究。总结起来使用inline函数有如下几点: 注意这里讨论的只是类的成员函数。 1。在类的...
  • liujianfei526
  • liujianfei526
  • 2016年01月23日 17:07
  • 513

C++ inline 内联函数

C++ inline内联函数是一种提高程序执行效率的一种特性。
  • zhangxiao93
  • zhangxiao93
  • 2016年01月23日 16:08
  • 826
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ 中宏函数和inline
举报原因:
原因补充:

(最多只允许输入30个字)