C预处理

#include<>和#include""区别

  • ""表示先在file.c所在的当前目录找头文件file.h,若找不到,再按系统指定的目录检索。
  • <>直接按系统指定的目录检索

宏常量

不带参数的宏定义(宏常量)

  • 比如 #define PI 3.1415
  • 宏名一般大写
  • 宏定义可以是常数、表达式
  • 宏定义不做语法检查
  • 宏定义不是C语言,不在行末加分号
  • 宏名有效范围从定义到本源文件结束
  • 可以用#undef命令终止宏定义的作用域
  • 宏定义中可以引用已经定义的宏名

带参数的宏定义(宏函数)

  • 比如 #define SUM(x, y) ((x) + (y))
  • 宏的名字不能有空格,但是替换字符串可以有
  • 用括号括住每一个参数,并括住宏的整体定义
  • 用大写字母表示宏的函数名
  • 由于宏函数没有函数调用开销,因此可以提高程序运行的效率,但是一般只有使用频繁且短小精悍的代码块才会定义为宏函数
posted @ 2022-06-16 16:18  肖肖凯  阅读(33)  评论(0)    收藏  举报