zoukankan      html  css  js  c++  java
  • 预处理等等

    首先,宏是C编译系统的预处理,何谓“预”?即是正式工作开始之前的准备工作。

      所以宏替换是在对程序编译之前进行的。

      其次,C程序由源程序变为可执行文件的三个阶段是:

      预处理阶段,由预处理器对程序文本中的宏进行展开。

      编译阶段,由编译器对经过预处理后的程序进行编译,并生成目标文件

      链接阶段,则链接器对目标文件和用到的函数库文件进行链接,生成可执行文件。

      因此,宏展开是在预处理阶段完成的。

    编译阶段的优化:
      死代码删除,永远也不会执行的代码,如while(false),不包括删除注释
      强度削弱:在执行时用强度较短的指令替换强度较长的指令



    内联函数和宏的区别:
      1.内联函数在编译时展开,只是一种对编译器的建议;而宏则是在预处理阶段,直接替换
      2.内联函数更近乎函数,可以在运行时调试,可以进行类型检查,自动类型转换;而宏定义则不行
    内联函数和普通函数的区别:
      1.内联函数会在编译时展开,不需要拷贝实参,不需要保存寄存器,也就是不需要函数调用的进栈出栈操作,执行效率比较高
  • 相关阅读:
    bootstrap之按钮和图片
    bootstrap之表单
    bootstrap之表格
    bootstrap+html5+css3
    网站链接
    linux下查看和添加PATH环境变量
    安装Memcache的PHP扩展
    ./configure
    如何学习前端?
    实战深度学习(下)OpenCV库
  • 原文地址:https://www.cnblogs.com/YTYMblog/p/6400287.html
Copyright © 2011-2022 走看看