qq_38482805 2020-07-28 11:43 采纳率: 0%
浏览 95

宏定义和内联函数(inline)区别?

1.在使用时,宏只做简单字符串替换(编译前)。而内联函数可以进行参数类型检查(编译时),且具有返回值。

2.内联函数本身是函数,强调函数特性,具有重载等功能。

3.内联函数可以作为某个类的成员函数,这样可以使用类的保护成员和私有成员。而当一个表达式涉及到类保护成员或私有成员时,宏就不能实现了。

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-07-28 12:02
    关注

    C语言只有宏,宏是对编译器实现复杂度/性能妥协的产物,所以它有一系列的问题,C++作为改进,引入了inline函数,但是又因为C++需要兼容C语言的代码,又保留了宏定义。

    评论

报告相同问题?

悬赏问题

  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?