条件编译#include求助~~~

时间:2021-03-22 15:52:26
一个程序中试着用了条件编译,其他头文件没事,就是string.h出现如下错误:
prepare_key.c:49:23: warning: incompatible implicit declaration of built-in function ‘strchr’
prepare_key.c:50:4: warning: incompatible implicit declaration of built-in function ‘strcpy’
prepare_key.c:55:7: warning: incompatible implicit declaration of built-in function ‘strchr’
这中错误一般是由于缺少string.h引起的。但我用的是:#ifndef _STRING_H    
#define _STRING_H
#include <string.h>
#endif
这样编译时,出现上述错误。可如果哇在上面直接用个#include <string.h>则不会出现警告,如下:#include <string.h>
#ifndef _STRING_H
#define _STRING_H
#include <string.h>
#endif
但是我又这样把头文件包含放在下面又出现警告,如下:#ifndef _STRING_H    
#define _STRING_H
#include <string.h>
#endif
#include <string.h>
还有这样也有错误:#ifndef _STRING_H    
#define _STRING_H

#endif

#include <string.h>
我那个源文件中包含了ctype.h 和 stdlib.h 。谢谢~~~~

3 个解决方案

#1


跟进去,看看 #ifndef _STRING_H
#define _STRING_H
#include <string.h>
#endif里面是不是也有_STRING_H

#2


#ifndef _STRING_H   
#define _STRING_H
#include <string.h>
#endif
这样编译时,出现上述错误。 string.h判断包含了_STRING_H,就不会编译string.h的内容了。
可如果哇在上面直接用个#include <string.h>则不会出现警告,如下:
#include <string.h>
#ifndef _STRING_H
#define _STRING_H
#include <string.h>
#endif
但是我又这样把头文件包含放在下面又出现警告,如下:
#ifndef _STRING_H   
#define _STRING_H
#include <string.h>
#endif
#include <string.h> 已经有那个_STRING_H定义了
还有这样也有错误:
#ifndef _STRING_H   
#define _STRING_H

#endif

#include <string.h> 已经有那个_STRING_H定义了
我那个源文件中包含了ctype.h 和 stdlib.h 。谢谢~~~~

其实应用的时候直接包含就是了,不用这么麻烦吧

#3


谢啦~~~~~~~~~~~

#1


跟进去,看看 #ifndef _STRING_H
#define _STRING_H
#include <string.h>
#endif里面是不是也有_STRING_H

#2


#ifndef _STRING_H   
#define _STRING_H
#include <string.h>
#endif
这样编译时,出现上述错误。 string.h判断包含了_STRING_H,就不会编译string.h的内容了。
可如果哇在上面直接用个#include <string.h>则不会出现警告,如下:
#include <string.h>
#ifndef _STRING_H
#define _STRING_H
#include <string.h>
#endif
但是我又这样把头文件包含放在下面又出现警告,如下:
#ifndef _STRING_H   
#define _STRING_H
#include <string.h>
#endif
#include <string.h> 已经有那个_STRING_H定义了
还有这样也有错误:
#ifndef _STRING_H   
#define _STRING_H

#endif

#include <string.h> 已经有那个_STRING_H定义了
我那个源文件中包含了ctype.h 和 stdlib.h 。谢谢~~~~

其实应用的时候直接包含就是了,不用这么麻烦吧

#3


谢啦~~~~~~~~~~~