| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 681 人关注过本帖
标题:问几个简单的问题
取消只看楼主 加入收藏
Windy0Winll
Rank: 2
来 自:走了
等 级:等待验证会员
帖 子:71
专家分:90
注 册:2010-8-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
问几个简单的问题
下面几个宏是从ctype.h中复制的:
     
程序代码:
#define    _UPPER        0x0001
#define    _LOWER        0x0002
#define    _DIGIT        0x0004
#define    _SPACE        0x0008 /* HT  LF  VT  FF  CR  SP */
#define    _PUNCT        0x0010
#define    _CONTROL    0x0020
#define    _BLANK        0x0040 /* this is SP only, not SP and HT as in C99  */
#define    _HEX        0x0080
#define    _LEADBYTE    0x8000

/****************************************/  //下面是问题

  islower('a') == islower('b') ==  _LOWER //值为 2
  isupper('A') == islower('B') ==  _UPPER //值为 1
  isalnum('a') == _LOWER ,isalnum('A')==  _UPPER //


我想问的就是这样设计有什么好处?
比如说isalnum怎么不设计成: 如果 x是字母或者是数字,isalnum(x)直接返回1,否则返回0. 

 

 

 

 
2010-09-04 16:49
Windy0Winll
Rank: 2
来 自:走了
等 级:等待验证会员
帖 子:71
专家分:90
注 册:2010-8-26
收藏
得分:0 
我想问的是:
 这些判断函数的返回值怎么不直接设计成1(是)和0(不是).怎么还要区分参数的不同.
比如我我们可以直接用函数isupper来判断是不是大写字母,根本可以不用isalnum(也可以用来判断大写字母,小写字母,和数字)这个函数来判断大写字母.

悄悄地来。。。 然后悄悄地走。。。。。。
2010-09-04 16:58
Windy0Winll
Rank: 2
来 自:走了
等 级:等待验证会员
帖 子:71
专家分:90
注 册:2010-8-26
收藏
得分:0 
晕 ! 我说了半天竟没有多数人理解我的意思。
再问个2个问题:
     1.这些个判断函数差不多形参都是 int,比如说isalnum的原型是int isalnum(int);
       如果我们调用isalnum(n)这个函数,如果n>256,得到的结果是什么意思。
     2.其他的宏我知道有什么意义,但#define    _LEADBYTE    0x8000这个宏是什么意思,

悄悄地来。。。 然后悄悄地走。。。。。。
2010-09-04 23:51
Windy0Winll
Rank: 2
来 自:走了
等 级:等待验证会员
帖 子:71
专家分:90
注 册:2010-8-26
收藏
得分:0 
最近闲着没事做,想来实现C库中的那些常见函数,还没写几个函数,就遇到问题了。看了ctype.h(dev cpp)中的函数声明,那些个简单的函数现在都不知道它的详细功能了:我写的那几个函数只能在0~255之间能正确工作,不知道如果大于256以后的是用来作什么。

悄悄地来。。。 然后悄悄地走。。。。。。
2010-09-05 00:48
快速回复:问几个简单的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.082392 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved