zoukankan      html  css  js  c++  java
  • C语言基本语法——预处理器和预处理指令

      1、什么是预处理器

      2、什么是预处理器指令

      3、预处理器指令

      4、宏指令

      5、宏函数

      6、宏函数的优缺点

      7、条件编译指令

    1、什么是预处理器

      • 预处理器是一个程序,用来处理源程序中的预处理指令。

      • 一个程序在编译之前一般都要经过预处理。

    2、什么是预处理器指令

      • 以“#”开头的指令叫预处理指令

      • 可以出现在任何位置,必须一行结束

      • 如果要换行,须得用""来连接两行内容

     

    3、预处理器指令

      • 文件包含

    #include <>#include “”

      • 宏定义

    无参宏定义

    有参宏定义

      • 条件编译

    #if

    #ifdef 

    #ifndef 

    #endif

    #elif

    #else

    #undef

    #if defined

    4、宏指令

      宏相当于文本的替换操作

      • 语法格式:

    -定义在函数的外面
    -格式:#define PI 3.14

      PI为宏的文本内容 在编译前将PI的内容替换成3.14

    5、宏函数

      • 语法格式: #define MianJi(r) PI*r*r

      宏函数只是文本,只是相当于做了内容替换的操作,注意参数是没有数据类型

    6、宏函数的优缺点

      • 宏函数的优缺点

    可以代码更简单、更容易,避免大量使用。

      • 宏函数注意事项

    – 宏函数中的参数一定要用括号括起来,以防止替换后的优先级问题。

    – 宏函数的整个表达式也需要用括号括起来,以防止宏函数参于表 达式的运算

    – 宏函数中的多条语句时,应写成复合语句,以防止重复定义变量。

    – 调用宏函数时,不要将++,--的表达式做为参数传递,可以先++,--后调用,或者,调用后++,--,以防止在宏函数中重复地 计算++,--

    – 宏函数也可以调用另一个宏函数

    7、条件编译指令

      • 在代码中设置编译条件 根据编译条件进行代码的编译并运 行。(跨平台)

      • 在编译文件的时候传入一个参数,根据参数就可以对代码进 行有选择的编译。

    gcc -DZHAOBENSHAN main3.c

      • 条件指令

    #if 如果 #ifdef 如果定义
    #ifndef 如果没定义 #elif 如果 //else if

    #else 否则 与 #if 对应关系
    #endif 结束标识
    #undef 取消宏和#define 定义宏

      • 编译方式

      根据参数编译

    gcc -DXXX main.c

      根据宏值(参数)

    #define ZHAOBENSHAN 1

      根据宏"值(逻辑)"进行编译

    #if ZHAOBENSHAN==1

  • 相关阅读:
    【Matlab】去除图片周围空白区域(plot subplot)
    使用nbdev进行jupyter项目的开发
    如何绘制符合打印标准的图形
    如何使用Python完成视频的快速剪辑
    如何查看和修改论文图片的打印尺寸
    使用TMUX替代screen工具
    Emacs设置包管理器以及镜像
    Emacs的配置文件
    Emacs Windows的设置
    数据科学新的工具Julia
  • 原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/9015219.html
Copyright © 2011-2022 走看看