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

  • 相关阅读:
    Windows环境安装tesseract-ocr 4.00并配置环境变量
    iis6手工创建网站后无法运行php脚本
    spring boot集成websocket实现聊天功能和监控功能
    spring boot2.0.4集成druid,用jmeter并发测试工具调用接口,druid查看监控的结果
    springboot2.1.5集成单节点elasticsearch6.4.0
    spring boot集成netty-服务端和客户端demo
    spring boot集成mongo统计活跃用户数
    spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例
    spring cloud分布式配置中心案例
    spring cloud--zuul网关和zuul请求过滤
  • 原文地址:https://www.cnblogs.com/yyt-hehe-yyt/p/9015219.html
Copyright © 2011-2022 走看看