zoukankan      html  css  js  c++  java
  • 嵌入式培训学习历程第十七天

           预处理

      1.预处理规则  (在源程序编译之前,对程序进行加工)

          条件包含,展开宏,条件编译

      2.头文件包含的内容

          (1). 包含函数声明

          (2). 包含变量声明

          (3). 包含宏定义

          (4). 包含typedef

          (5). 嵌套include

      3.通用规则

        指令都以#开头

      4.变量的宏定义

          #define 宏名 替换列表

          注意:不添加 “;” 

             不可有额外符号

          拓展:只进行简单替换,不进行正确性检查

      5. #undef  取消宏定义

      6. 函数宏    节省内存

      7. 内联函数  (本质 :函数)

        定义: 是更好的宏

        关键字 :inline

        内联展开要求

              (1). 无递归

              (2). 无循环

              (3). 无复杂的条件分支语句

              (4). 代码量较少

      8.内联和宏的区别

          (1). 内联需要检查参数的正确性, 宏不检查

          (2). 内联不一定会被展开,宏一定会被展开

          (3). 内联展开在编译阶段,宏在预处理阶段

      9. 创建较长的宏

          使用do {}while(0)

          注意 :while(0)的后面没有“;”

      10.条件编译 :

        六个预处理指令 :#if,  #endif, #ifdef, #ifndef, #elif, #else

        一个运算符 :defined

        三种基本形式

          1. #if 常量表达式...#endif

          2.#ifdef DEBUG ... #endif

          3. #ifndef DEBUG ... #endif

        条件编译的作用

          (1). 调试开关

          (2). 头文件保护

        注意 :defined 测试某个宏是否被定义,是返回1, 否返回0

          #if与#endif 之间可以有多个#elif, 但#else只有一个

      这两天的英语: multiple(多数的)  definition(定义)  invalid(无效的)  suffix(后缀)  previous(以前的)

  • 相关阅读:
    springmvc的执行流程
    深入理解设计模式(五):抽象工厂模式
    深入理解设计模式(四):工厂方法模式
    深入理解设计模式(三):策略模式
    写给三十岁的自己
    asp.net引用System.Speech实现语音提示
    深入理解设计模式(序):常用的7大设计原则
    深入理解设计模式(二):简单工厂模式
    深入理解设计模式(一):单例模式
    解决基于IIS的.net core HttpWebRequest 连接特别慢
  • 原文地址:https://www.cnblogs.com/cxw825873709/p/3246889.html
Copyright © 2011-2022 走看看