黑马程序员--预处理3中指令

预处理指令分3种:
1>宏定义
2>条件编译
3>文件包含

预处理指令在代码翻译成0 1之前执行
预处理的位置是随便写的
预处理指令的作用域:从编写指令的那一行开始一直到文件结尾

# undef COUNT // 从这行开始,COUNT这个宏失效
宏名一般用大写或者以k开头,变量名一般用小写

带参数的宏定义:
宏定义只会替换代码
# define <stdio.h>
# define sum(v1, v2) ((v1)+(v2))//右边替换左边,加上括号,严谨
# define pingfang(a) ((a)*(a)) //都要写括号

带参数的宏定义比函数高,因为宏定义是在翻译之前进行的文本替换,简单的干脆用宏定义


条件编译:满足条件才进行编译

    if  else if   else  中以有些代码没有执行,但是都参与编译存在.o目标文件

# if ()
{

}
# elif ()
{


# else
printf("a为其他值\n");
# endif// 一定加上

}

条件编译效率更高,在编译之前进行,无用的代码不参与编译
只要写#if,后面必须加上#endif

# if defined (A)
语句;
# endif

# if !defined (A)
语句;
# endif

# ifdef MAX
语句;
# endif

# ifndef MAX
语句;
# endif


文件包含:
1.<> 表示系统自带的文件,"" 表示自定义的文件
2.不允许循环包含,比如a.h包含 b.h,b.h又包含a.h
3.函数写很多遍声明也可以编译通过
 重复包含函数声明会降低效率


 李四.h
# ifndef LISI_H // LISI_H可以写成任何名字,一般写成文件名,使宏名不重复
# define LISI_H
int sum(int a, int b);
#endif
 
 王五.h
# ifndef WANG_WU // WANG_WU可以写成任何名字,一般写成文件名,使宏名不重复
# define WANG_WU
int cheng(int a, int b);
#endif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值