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

  • 相关阅读:
    Redis源代码分析(十三)--- redis-benchmark性能測试
    kvm中运行kvm
    umount.nfs device busy day virsh extend diskSpace, attachDisk
    ultravnc
    openNebula dubug
    maintenance ShellScripts
    virsh VMI deploy data serial xml
    cloud computing platform,virtual authentication encryption
    基于C 的libvirt 接口调用
    storage theory
  • 原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/9015219.html
Copyright © 2011-2022 走看看