C语言总结:预处理命令

12 篇文章 0 订阅
10 篇文章 0 订阅
C语言总结:预处理命令
2019-3-30

预处理命令可以提高编程效率,但其不是C语句,编译系统不能直接对它们进行编译,而是在编译前会转换为C源程序,然后编译时去掉了预处理命令。

1. 宏定义

宏定义在使用时,系统只是用宏名之后的部分替换语句中包含的宏名,如果是含参宏定义,将实际的参数替换定义时字符串中的对应参数。所以在写宏定义时要注意,宏只是内容的替换,所以要严格遵守语法规则。

//无参宏定义
# define PI 3.1415926

//含参宏定义
# define S(a, b) a*b
area = S(3,2);  // area = 6

//限制宏定义的作用于
# define PI 3.1415926
...    //PI 的有效范围
# undef PI
2. 文件包含

C源代码常包含头文件,也是一种预处理命令。
有两种包含形式,尖括号、双撇号:

#include <file.h>
#include "file.h"

二者区别在于,用尖括号时,系统到存方C库函数头文件的目录中寻找要包含的文件,这称为标准方式。用双撇号时,系统先在用户当前目录中寻找要包含的文件,若找不到,再按标准方式查找。
一般来讲,如果调用库函数而用#include 命令来包含头文件,常用尖括号,以节省查找时间。若包含的是用户自己定义编写的文件,一般用双撇号(不在当前目录中的文件需给出文件路径)。

3. 条件编译

通过人为控制,使得程序中的部分内容在一定条件下才进行编译,即对该部分内容指定编译的条件。
几种形式:

//1)若标识符被定义过,编译程序段
# ifdef 标识符
...
# else
...
# endif

//2)若标识符未被定义过,编译程序段
# ifndef 标识符
...
# else
...
# endif

//3)当表达式为真时,编译程序段,可节省编译所用时间。
# if 表达式
...
# else
...
# endif

程序示例:

#include <stdio.h>
#define RUN 
void main(){
  # ifdef RUN
  printf("Define RUN\n");
  # else
  printf("Undefine RUN\n");
  # endif
  return ;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值