• 宏、函数和内联


    先说宏和函数的区别: 
    1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型. 
    2. 宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的. 
    3. 宏在编译之前进行,即先用宏体替换宏名,然后再编译的,而函数显然是编译之后,在执行时,才调用的.因此,宏占用的是编译的时间,而函数占用的是执行时的时间. 
    4. 宏的参数是不占内存空间的,因为只是做字符串的替换,而函数调用时的参数传递则是具体变量之间的信息传递,形参作为函数的局部变量,显然是占用内存的. 

    5. 函数的调用是需要付出一定的时空开销的,因为系统在调用函数时,要保留现场,然后转入被调用函数去执行,调用完,再返回主调函数,此时再恢复现场,这些操作,显然在宏中是没有的.
     
    内联函数与宏的区别:
    1.内联函数在运行时可调试,而宏定义不可以;
    2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会; 
    3.内联函数可以访问类的成员变量,宏定义则不能; 
    4.在类中声明同时定义的成员函数,自动转化为内联函数。
  • 相关阅读:
    如何 Xcode 开发工具里安装一个空的项目末模板
    推荐完成项目要使用的常用工具
    仿照 QQ 的 cell 的左滑删除、置顶、标记未读效果
    API接口文档的撰写
    UI:动画
    UI:多线程 、用GCD创建线程
    UI:UICollectionView
    开发中的一些零碎知识点
    UI:数据库练习、滤镜效果
    UI:地图和定位
  • 原文地址:https://www.cnblogs.com/573177885qq/p/5831598.html
Copyright © 2020-2023  润新知