码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员--预处理

时间:2015-01-21 19:50:16      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

预处理


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


预处理的功能

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 

黑马程序员--预处理

标签:

原文地址:http://www.cnblogs.com/frozen1224/p/4239736.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!