C语⾔中#ifdef,#ifndef和#endif的作⽤
1、⽤于注释掉⼀段代码
我们⾃⼰编写程序的时候,需要看到⼀系列的调试代码,但是发给客户的时候,客户可不希望看到什么什么OK的代码,所以我们希望能很容易地注释掉这段代码。
这时需要⽤到预处理指令 #ifdef 和 #endif :
#include <stdio.h>
#define CONFIG_DEBUG
int main(){
FILE *fp;
fp=fopen("D:\\DEV\\","r");
if(NULL==fp){
printf("error!");
}
#ifdef CONFIG_DEBUG
printf(" ok");
#endif
return0;
}
如果⽂件在那个路径没错的话,将会打印如下信息:
如果不想要看到这样的调试信息的话,注释掉#define CONFIG_DEBUG这句就⾏。
2、防⽌头⽂件重复包含
a.h
#include <stdio.h>
#include "b.h"
b.hinclude和contain
#include "a.h"
c.c
#include "a.h"
#include "b.h"
int main(){
printf("Hello!");
}
如果你程序是这样写的话,编译器就会出现Error #include nested too deeply的错误。
因为这⾥ b.h 和 a.h 都互相包含,c.c⽂件在include的时候重复include了a.h,我们希望c.c⽂件中执⾏#include "b.h"的时候 b.h 能进⾏判断,如果没有#include "a.h"则include,如果已经include了,则不再重复定义。
可以将b.h修改为:
#ifndef _A_H
#define _A_H
#include "a.h"
#endif
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论