isblank编译警告

来源:互联网 发布:淘宝订单信用清洗 编辑:程序博客网 时间:2024/05/16 15:14

最近对以前写的代码进行消除编译警告,但是有一个isblank的警告一直无法消去。

 

例子源码如下:

 

 

 

编译的结果:

 

bash-2.05b# gcc -Wall test.c test.c: In function `main':test.c:9: warning: implicit declaration of function `isblank'

 

这个警告是说isblank没有对应的函数声明,需要包含相应的头文件。

通过man isblank,所显示的信息来看,对应的头文件就是ctype.h,但还是不行呀。

 

 

后来发现,在比较新的Linux发行版中编译时则没有这个警告,只有在比较旧的版本中才有。

再仔细看了一下man isblank,偶然间瞥到man信息中的一段信息:

isascii():

_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE

isblank():_XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;or cc -std=c99

 

一下就清楚了,isblank属于C99标准,这点通过查看ctype.h可以获得证明:

 

 

添加编译选项-std=c99,重新编译了一下,警告终于消除了:

bash-2.05b# gcc -Wall -std=c99 test.c

 

 

虽然编译警告解决了,但有一个疑问,gcc不完全支持C99标准吗? 这个等以后再学习了。

 

原创粉丝点击