当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 为什么编译器会警告isblank定义不明确?我已经#include <ctype.h>了
帖子发表于 : 2007-07-26 9:54 
头像

注册: 2007-04-15 1:00
帖子: 150
送出感谢: 0 次
接收感谢: 0 次
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww


最后由 Toko 编辑于 2008-02-19 11:02,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-07-26 10:05 
头像

注册: 2007-04-15 1:00
帖子: 150
送出感谢: 0 次
接收感谢: 0 次
换成isspace后就好了,看来这两个是有区别的,isblank不计算换行。郁闷,我的书上写着要计算换行的。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 为什么编译器会警告isblank定义不明确?我已经#include <ctype.h>了
帖子发表于 : 2009-01-15 15:14 
头像

注册: 2005-08-17 23:44
帖子: 87
地址: 武汉
送出感谢: 0 次
接收感谢: 0 次
这个似乎跟使用哪种C语言标准有关。看下面的man 文档解释:

Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

isascii(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE
isblank(): _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE; or cc -std=c99
CONFORMING TO
C99, 4.3BSD. C89 specifies all of these functions except isascii() and
isblank(). isascii() is a BSD extension and is also an SVr4 extension.
isblank() conforms to POSIX.1-2001 and C99 7.4.1.3.

我认为应该是可以将isblank 换成isspace 的。

isblank()
checks for a blank character; that is, a space or a tab.
isspace()
checks for white-space characters. In the "C" and "POSIX"
locales, these are: space, form-feed ('\f'), newline ('\n'),
carriage return ('\r'), horizontal tab ('\t'), and vertical tab
('\v').


_________________
为折腾而用Linux;为不折腾而用Windows

To be, or not to be: that is the question:


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译