c++中const、内联函数与c语言中的宏定义的区别

原创 2013年12月04日 22:41:20

1、首先说下c语言中的宏定义

     宏定义分两种模式:

     1)不带参数的宏定义

          定义为常量

          实例:

         #define Max 1000

     2)带参数的宏定义

          #define f(a,b)  a>b?a:b;

2、c++中的const 、内联函数与c语言中的宏定义的关系

     1)c++中的const 是c语言中不带参数的宏定义的扩展

          这里须指定数量类型,如果没有指出,则默认为整形数据

          const int Max=10;

     2)内联函数是c语言中带参数的宏定义的扩展

           它比宏定义要安全,因为宏定义只是简单的替换,不检查数据格式

           内联函数也是替换,但是它是函数格式,从而保证了数据的正确性与安全性

           声明格式必须有inline关键字

          inline int func();

          同时,定义部分也必须有关键字inline

          inline int func()

         {

          ……

         }

 

总结下:就是说,c++是c的超集

 

c++将c语言中的宏定义进行了扩展,扩展成两个独立的模块

解决了c语言中只是简单替换的原理,同时解决了宏定义的不安全性

 

 

欢迎各位网友批评指正,共同交流c++方面的问题。

 

 

 

相关文章推荐

C++ CONST_内联函数

CONST: int me; const int* p1 = &me;//p1可变,*p1不可变,此时不能用*p1来修改,但是p1可以转向 int* const p2...
  • lwljava
  • lwljava
  • 2014年07月18日 16:42
  • 571

C语言的宏定义和C++的内联函数有什么意义

宏是预编译器的输入,然后宏展开之后的结果会送去编译器做语法分析。宏与函数等处于不同的级别,操作不同的实体。宏操作的是 token, 可以进行 token的替换和连接等操作,在语法分析之前起作用。而函数...

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

C语言中的内联函数(inline)与宏定义(#define)详细解析 作者: 字体:[增加 减小] 类型:转载 内联函数与宏本质上是两个不同的概念如果程序编写者对于既要求快速,又要求可读的情况下...

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

C语言里面的内联函数(inline)与宏定义(#define)探讨   先简明扼要,说下关键: 1、内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回...

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

先简明扼要,说下关键:1、内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回指令,这样在运行时速度更快。2、内联函数可以调试,而宏定义是不可以调试的。内联函...

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

http://huxiongwei.spaces.eepw.com.cn/articles/article/item/85841 C语言里面的内联函数(inline)...

C++内联函数与宏定义的区别

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

C++中宏定义和内联函数区别

1. 宏代码不是函数

C++中,内联函数和宏定义的区别是什么?

原文地址:http://www.programmerinterview.com/index.php/c-cplusplus/inline-vs-macro/ 这个问题在苹果公司(Apple)和直觉(...

C++杂记: 内联函数的使用,与宏定义、成员函数区别

内联函数类似于C里边的宏,只是宏经常有一些不安全因素,比如 宏定义 add() 是 a+b,调用的时候宏定义直接展开,不做任何的判断,如果调用res = add()*c; 得到的代码就是res = a...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++中const、内联函数与c语言中的宏定义的区别
举报原因:
原因补充:

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