黑马程序员--预处理

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

预处理


预处理程序用于在编译器真正地看到代码之前分析源文件。


预处理的功能

1》用等价形式代替连字序列

2》将所有以斜线字符(\)结尾的行连接到同一行

3》将程序划分到某个标记流中

4》删除注释,并将注释替换为单个空格

5》处理预处理程序指令并扩展宏指令


预处理程序指令


所有的预处理程序指令都以字符#开头,它必须是命令所在行的第一个非空白字符。字符#之后可以有选择地跟随一个或多个空白或者制表符



#define指令

格式1:

#define name text


在程序中使用name 时,将会直接代替程序响应位置的text


格式2:

#define IS_LEAP_YEAR(y)   y % 4 == 0 && y & 100 != 0 || y%400 == 0


用于判断是否为闰年


格式3:


#define SQUARE(v)  ((v) * (v))


一定要给变量加上括号


# 和  ##


 #define str(x)  #x


str(testing)将扩展为”testing”


#define printint(x) printf(#x “ = %i”,x)

printint(count) ;预处理后为

printf(“count = %i”,count);

#define printx(n) printf(“%i\n”,x##n)

printx(5);预处理后

printf(“%i”,x5);


#和##字符两侧不允许出现空格


#error  text   ….

预处理程序将特定的text编写成一条出错消息



#if指令


格式1:

#if constant_experssion

#endif


格式2:

#if constant_experssion

#elif constant_experssion2

#elif constant_experssion3

#else

#endif


#ifdef指令


#ifdef identifer

#endif


#ifndef指令


#ifndef indentifer

#endif


#import 指令


#import <fileName>


#import “fileName”


自己写的用  ” ”,系统自带的用< >


#include指令用法同#import,但是少了除重功能




#undef指令

#undef identifer

解除identifer的宏定义




#import除重功能实现


原理:


#ifndef debug

//文件内容

#define debug  TRUN

#endif 

转载于:https://www.cnblogs.com/frozen1224/p/4239736.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值