当前位置: 首页> 游戏> 网游 > 秀米h5制作教程_中国十大室内设计师_海外营销推广_网站优化外包多少钱

秀米h5制作教程_中国十大室内设计师_海外营销推广_网站优化外包多少钱

时间:2025/7/15 22:00:54来源:https://blog.csdn.net/weixin_70620792/article/details/142890864 浏览次数:0次
秀米h5制作教程_中国十大室内设计师_海外营销推广_网站优化外包多少钱

文章目录

  • 1. 预定义符号
  • 2. #define定义常量
  • 3. #define定义宏
  • 4. 带有副作用的宏参数
  • 5. 宏替换的原则
  • 6. 宏和函数的对比
  • 7. #运算符和##运算符
    • 7.1 #运算符
    • 7.2 ##运算符
  • 8. 命名约定
  • 9. #undef
  • 10. 条件编译

1. 预定义符号

  • C语言定义了一些预定义符号,可直接使用,预定义符号也是在预处理阶段处理的
__FILE__ //进行编译的源文件
__LINE__ //文件当前的行号
__DATE__ //文件被编译的日期
__TIME__ //文件被编译的时间
__STDC__ //如果编译器支持ANCI C语法规则,那么该值是1

在这里插入图片描述


2. #define定义常量

在这里插入图片描述


  • #define定义标识符时需要在末尾加分号;吗???

在这里插入图片描述


3. #define定义宏

  • C语言允许将参数替换到文本中,通常称为宏,定义如下:
  • #define name(parament-list) stuff
  • 其中name是宏名,parament-list是宏的参数,stuff是宏体
  • 其中参数列表左边的括号必须与宏名紧挨着,中间不允许有空格
  • 简单举个例子
    在这里插入图片描述

  • 上述代码有没有问题呢?接下来我们再看一个例子

在这里插入图片描述


  • 因此为了避免出现优先级的问题,通常会为宏体的每个参数加上括号

在这里插入图片描述


  • 为宏体里的每个参数加上括号,真的就万事大吉了吗?

在这里插入图片描述


  • 因此我们不仅要为宏的每个参数加上括号,同时还需要为整个宏体加上括号

在这里插入图片描述


4. 带有副作用的宏参数

  • 当宏参数在宏定义时出现次数超过一次时,如果参数有副作用,那么使用宏就会出错

在这里插入图片描述


在这里插入图片描述


5. 宏替换的原则

  • 调用宏时,主要是对#define定义的标识符替换成对应的宏体
  • 宏参数和#define定义中可以出现其他#define定义的符号,但是宏不能递归

6. 宏和函数的对比

  • 宏通常用于简单运算

在这里插入图片描述


  • 和函数相比,宏的劣势:
  • 第一点就是宏用于简单的计算比函数有优势,执行复杂的程序时使用宏会出错
  • 第二点就是宏没有类型的要求,这就使得其并不严谨,因此这也是宏的优点
  • 第三点就是宏无法调式,同时因为优先级的问题,经常导致其出错

在这里插入图片描述


  • 宏也可以做到函数做不到的事

在这里插入图片描述


属性#define定义宏函数
代码长度可用于长度小的代码中代码长,复杂度高直接使用函数(√)
执行速度更快(√)存在函数调用和返回参数的额外操作,导致执行速度变慢
操作符优先级为了不出错,使用宏时尽可能多写括号容易预测(√)
带有副作用的参数不容易预测容易预测(√)
参数类型无限制限制
调试不可调试可调试(√)
递归不可递归可递归(√)

7. #运算符和##运算符

7.1 #运算符

  • 字符串合并打印

在这里插入图片描述


在这里插入图片描述


7.2 ##运算符

  • ##可以把它两边的符号合成一个符号

在这里插入图片描述


在这里插入图片描述


8. 命名约定

  • 宏一般都是大写,函数一般首字母大写

9. #undef

  • 它通常用来移除一个宏定义
    在这里插入图片描述

10. 条件编译

  • #if 常量表达式 …… #endif
    在这里插入图片描述

  • #ifdef 符号或语句 …… #endif
    在这里插入图片描述

  • 多个分支的条件编译
  • #if 常量表达式 ……#elif 常量表达式……#else……#endif
    在这里插入图片描述

  • #if defined ……#ifdef……#ifndef……#endif
    在这里插入图片描述

  • 嵌套使用
    在这里插入图片描述

关键字:秀米h5制作教程_中国十大室内设计师_海外营销推广_网站优化外包多少钱

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: