ctype.h,ctype.c 结构分析 \linux-1.0\linux\include\linux\ctype

 \linux-1.0\linux\include\linux\ctype.h
#ifndef _LINUX_CTYPE_H
#define _LINUX_CTYPE_H#define _U	0x01	/* upper */  //大写字母
#define _L	0x02	/* lower */  //小写字母
#define _D	0x04	/* digit */  //数字
#define _C	0x08	/* cntrl */  //控制按键
#define _P	0x10	/* punct */  //
#define _S	0x20	/* white space (space/lf/tab) */
#define _X	0x40	/* hex digit */  //十六进制数
#define _SP	0x80	/* hard space (0x20) */extern unsigned char _ctype[];
extern char _ctmp;//通过设定ascii表不同的位置为什么类型, 判断时直接比较!速度很快!
#define isalnum(c) ((_ctype+1)[c]&(_U|_L|_D))
#define isalpha(c) ((_ctype+1)[c]&(_U|_L))
#define iscntrl(c) ((_ctype+1)[c]&(_C))
#define isdigit(c) ((_ctype+1)[c]&(_D))
#define isgraph(c) ((_ctype+1)[c]&(_P|_U|_L|_D))
#define islower(c) ((_ctype+1)[c]&(_L))
#define isprint(c) ((_ctype+1)[c]&(_P|_U|_L|_D|_SP))
#define ispunct(c) ((_ctype+1)[c]&(_P))
#define isspace(c) ((_ctype+1)[c]&(_S))
#define isupper(c) ((_ctype+1)[c]&(_U))
#define isxdigit(c) ((_ctype+1)[c]&(_D|_X))#define isascii(c) (((unsigned) c)<=0x7f)
#define toascii(c) (((unsigned) c)&0x7f)//2步宏,第1步赋值(防止传入值被修改),第2步 做相应的操作!
#define tolower(c) (_ctmp=c,isupper(_ctmp)?_ctmp-('A'-'a'):_ctmp)
#define toupper(c) (_ctmp=c,islower(_ctmp)?_ctmp-('a'-'A'):_ctmp)#endif

 \linux-1.0\linux\include\linux\ctype.c

/**  linux/lib/ctype.c**  Copyright (C) 1991, 1992  Linus Torvalds*/#include <linux/ctype.h>char _ctmp;
//设定ASCII码对应的值!
unsigned char _ctype[] = {0x00,			/* EOF */
_C,_C,_C,_C,_C,_C,_C,_C,			/* 0-7 */
_C,_C|_S,_C|_S,_C|_S,_C|_S,_C|_S,_C,_C,		/* 8-15 */
_C,_C,_C,_C,_C,_C,_C,_C,			/* 16-23 */
_C,_C,_C,_C,_C,_C,_C,_C,			/* 24-31 */
_S|_SP,_P,_P,_P,_P,_P,_P,_P,			/* 32-39 */
_P,_P,_P,_P,_P,_P,_P,_P,			/* 40-47 */
_D,_D,_D,_D,_D,_D,_D,_D,			/* 48-55 */
_D,_D,_P,_P,_P,_P,_P,_P,			/* 56-63 */
_P,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U,	/* 64-71 */
_U,_U,_U,_U,_U,_U,_U,_U,			/* 72-79 */
_U,_U,_U,_U,_U,_U,_U,_U,			/* 80-87 */
_U,_U,_U,_P,_P,_P,_P,_P,			/* 88-95 */
_P,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L,	/* 96-103 */
_L,_L,_L,_L,_L,_L,_L,_L,			/* 104-111 */
_L,_L,_L,_L,_L,_L,_L,_L,			/* 112-119 */
_L,_L,_L,_P,_P,_P,_P,_C,			/* 120-127 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,		/* 128-143 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,		/* 144-159 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,		/* 160-175 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,		/* 176-191 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,		/* 192-207 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,		/* 208-223 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,		/* 224-239 */
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};		/* 240-255 */


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AaronYang WCF教程目录

原创&#xff0c;讲究实践 1. 那天有个小孩教我WCF[一][1/3] 基本搭建 阅读 2013年6月27日1:29:02 2. 那天有个小孩教我WCF[一][2/3] 基本竣工 阅读 2013年6月29日01:30:22 3. 那天有个小孩教我WCF[一][3/3] 第二种代理引用服务&#xff0c;小…

plsql中文乱码 显示问号

输入sql语句select * from V$NLS_PARAMETERS查看字符集&#xff0c;查看第一行value值是否为简体中文 解决方案&#xff1a; 新增环境变量 变量名&#xff1a; NLS_LANG 变量值: SIMPLIFIED CHINESE_CHINA.ZHS16GBK 重启PL/SQL 解决 转载于:https://www.cnblogs.com/tonyzt/p/1…

第二阶段团队绩效评分

第二阶段评分结果&#xff1a; 转载于:https://www.cnblogs.com/xczd/p/11068692.html

从最大似然到EM算法浅解(转载)

http://blog.csdn.net/zouxy09/article/details/8537620#comments转载于:https://www.cnblogs.com/zhihaowang/p/10128356.html

Shanghai Barcamp

早上起来晚了&#xff0c;晚睡晚起的习惯很不好&#xff01;总是有段时间会养成这样的不好习惯&#xff0c;过一段时间又会早睡早起。总结的说&#xff0c;去了还是有不少收获的&#xff0c;而且刚好就在前一段时间看了不少关于vc和初期投资培养方面的知识&#xff0c;结果这次…

我的虚拟机上网记录

联网时把虚拟机设置成共享IP模式就可以。如果要通过NFS链接开发板就选择桥接网络

随堂小测冲刺.第19天

我们小组的logo出来的&#xff0c;太酷了&#xff0c;不符合我的审美&#xff0c;本人表示无法接受。。。 还要谢谢李泽宇的女盆友&#xff0c;O(∩_∩)O哈哈~ 转载于:https://www.cnblogs.com/daisy99lijing/p/11024465.html

对象存储系统Swift官方文档

对象存储系统Swift技术详解&#xff1a;综述与概念 OpenStack Object Storage (Swift) 是用来创建冗余的、可扩展的对象存储&#xff08;引擎&#xff09;的开源软件。通过阅读Swift的技术文档&#xff0c;我们可以理解其中的设计的原理和实现的方法 。 Swift项目已经进展有两年…

MSBuild编译扩展

新增一个C#工程&#xff0c;用记事本打开工程文件&#xff08;.csproj结尾&#xff09;&#xff0c;滚动条拉到最后&#xff0c;大家可以看到一段如下的代码&#xff0c;其中<Target Name"BeforeBuild">和<Target Name"AfterBuild">大家根据名…

电影bt

电影&#xff1a; http://www.bttiantang.com/

修改2440里面的FriendlyARM

修改2440里面的FriendlyARM 在/etc/init.d文件夹里面有一个rcS文件&#xff0c;修改/bin/hostname FriendlyARM中的FriendlyARM即可 比如修改为/bin/hostname Solar posted on 2011-12-07 17:22 Neddy11 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/Neddy…

vs2008 下编译jrtplib-3.9.0成功

网址:http://blog.csdn.net/jid_223/article/details/6858663 jrtplib-3.9.0的编译&#xff0c;终于搞通了。网上搜集了很多资料&#xff0c;自己也调试了很久。 首先&#xff0c;jrtplib-3.9.0是什么不用多说吧&#xff0c;它是一个很牛的老外用C写的一个开源的RTP协议库&…

Eclipse安装VJET报错解决办法

2019独角兽企业重金招聘Python工程师标准>>> Eclipse在安装JS编辑器插件VJET时可能会出现以下错误 Cannot complete the install because one or more required items could not be found. Software being installed: VJET Java Based Dom Kit (Incubation) 0.10.0…

读书笔记_《海蒂》

海蒂是一个可爱、善良的小菇凉&#xff0c;很真诚、纯净的孩子。一般形容人长得好&#xff0c;只会用漂亮这个词&#xff0c;而如果一个人内心更加美好&#xff0c;那么就会用美丽来形容。海蒂这就是这样一个美丽的女孩儿。我想就算是在那种朴素的环境下&#xff0c;也很难出现…

罐头瓶里面的电能表

生活中我们经常见到数字电能表&#xff0c;只不过下面这个是装在罐头里面的电能表&#xff0c; 此想法来自EnterJar&#xff0c;&#xff0c; 怎么样&#xff1f;直接把用电器接上就可以测出电子产品的电能状况&#xff0c;很方便把&#xff01; &#xff0c;原理很简单&#x…

Linux复制文件scp

cp 复制文件(copy) cp sourcefile destfile scp 跨服务器复制(secure copy) (1) 复制文件&#xff1a; scp local_file remote_usernameremote_ip:remote_folder 或 scp local_file remote_usernameremote_ip:remote_file 或 scp local_file remote_ip:remote_folder 或 scp lo…

windows 下编译 jrtplib-3.9.1 和 jthread-1.3.1

网址&#xff1a;http://home.eeworld.com.cn/my/space-uid-474955-blogid-117574.html 第一步&#xff0c;先下载三个必要的文件&#xff1a; 1.下载 jrtplib-3.9.1&#xff1a;http://research.edm.uhasselt.be/~jori/page/index.php?nCS.Jrtplib 2.下载 jthread-1.3.1:http…

ODBC / OLEDB___DAO / RDO / ADO

ODBC / OLEDB___DAO / RDO / ADO ODBC(Open Database Connectivity&#xff0c;开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分&#xff0c;它建立了一组规范&#xff0c;并提供了一组对数据库访问的标准API&…

waveOutGetDevCaps - 查询输出设备的性能

WinAPI: waveOutGetDevCaps - 查询输出设备的性能//声明: waveOutGetDevCaps(uDeviceID: UINT; {输出设备ID}lpCaps: PWaveOutCaps; {TWaveOutCaps 结构的指针, 用于接受设备信息}uSize: UINT): MMRESULT; {TWaveOutCaps 结构大小} ): MMRESULT; {成功返…

【luogu P5022 旅行】 题解

题目连接&#xff1a;https://www.luogu.org/problemnew/show/P5022 \(NOIP2018 DAY2T1\) 考场上只写了60分&#xff0c;很容易想到当 m n - 1 时的树的做法。 读题推一下样例不难发现&#xff0c;如果选择一个分支节点就必须走到头——直到一个节点没有子树。 那么我们就可以…