- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
C 标准库源码解剖.pdf
C (01)
C (01)
CC标准库源码解剖((0011)):类型相关的定义
说明:整个C 标准库解剖系列环境为Ubuntu 8.04,编译器为gcc 4.2.4,由于linux 系统中只有C 标准库的
头文件(在/usr/include 下),函数库被编译成了程序库,没有源代码,因此对源代码的解剖用的是glibc 2.9,
可从GNU 的官方站点上下载。
类型相关定义包括limits.h、float.h、stddef.h、stdbool.h、stdarg.h、iso646.h、stdint.h 共7个头文件。
除了stdint.h 外,其余6 个文件在gcc 编译器的/usr/lib/gcc/i486-linux-gnu/4.2.4/include 目录下。stdint.h 在
/usr/include 中,是C99 中引入的,提供了扩展整数的基本定义,放到后面再解剖吧。
1 limits.h
1 limits.h
11、lliimmiittss..hh:定义了整数类型的范围。/usr/include 下也有limits.h,它会自己先定义各个整数类型范围,
这样当不用gcc 来构建你的程序时就可以使用这些值。如果使用gcc 编译器来构建你的程序,则会使用gcc
编译器自己的limits.h(前面的定义都会#undef 掉)。由于这个limits.h 会用到gcc 内置的limits.h,因此我们
解剖/usr/include 下的limits.h。
1. /* ISO C99 Standard: 7.10/5.2.4.2.1 整数类型的大小 limits.h */
2. #ifndef _LIBC_LIMITS_H_
3. #define _LIBC_LIMITS_H_ 1
4. #include features.h /* 选项的宏,如ISOC99 选项、POSIX 选项、XOPEN 选项等 */
5. #define MB_LEN_MAX 16 /* 支持区域设置的多字节字符宽度为16 位 */
6. /* 不使用GNU CC 时就必须定义下面所有符号,否则使用gcc 编译器中的定义(看下面) */
7. #if !defined __GNUC__ || __GNUC__ 2
8. # ifndef _LIMITS_H
9. # define _LIMITS_H 1
10. #include bits/wordsize.h /* 定义了表示字的位数的__WORDSIZE 宏,64 位平台上值为64,32 位平台上值为
32 */
11. # define CHAR_BIT 8 /* char 类型的宽度为8 位 */
12. # define SCHAR_MIN (-128) /* signed char 的最小值为-2^7,补码表示没有对应的正数,其
反数还是自己 */
13. # define SCHAR_MAX 127 /* signed char 的最大值为2^7-1*/
14. # define UCHAR_MAX 255 /* unsigend char 的最大值为2^8-1最小值为0) */
15. # ifdef __CHAR_UNSIGNED__ /* 根据预定义宏来确定是让char=unsigned char 还是
char=signed char */
16. # define CHAR_MIN 0
17. # define CHAR_MAX UCHAR_MAX
18. # else
19. # define CHAR_MIN SCHAR_MIN /* gcc 中使用了这个,即char=signed char */
20. # define CHAR_MAX SCHAR_MAX
21. # endif
22. # define SHRT_MIN (-32768) /* signed short int 的最小值为-2^15 */
23. # define SHRT_MAX 32767 /* signed short int 的最小值为2^15-1 */
您可能关注的文档
- 2017年黄浦区中招零志愿最低投档线.PDF
- 2017年黄浦区各初中学校名额分配最低投档分数线.PDF
- 2017杭州中考成绩昨晚揭晓.PDF
- 2017温州大学数字资源采购方式论证专家信息表.PDF
- 2017环法抢先看公路自行车世界巡回赛巡礼之环法站.PDF
- 2017真正汽博好车评选今日揭晓 想现在买车的亲们 欢迎围观.PDF
- 2017级专业学位硕士研究生20172018学年第一学期课程表.DOC
- 2017青春伴夕阳·高校陪伴实践大赛.DOC
- 2017香港同志共融指数六成大企业向员工同志伴侣提供福利.PDF
- 2017高等院校数据挖掘教学创新研讨会.PDF
- 专题06 经济体制(我国的社会主义市场经济体制)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题11 世界多极化与经济全球化-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 专题03 经济发展与社会进步-5年(2020-2024)高考1年模拟政治真题分类汇编(浙江专用)(解析版).docx
- 专题09 文化传承与文化创新-5年(2020-2024)高考1年模拟政治真题分类汇编(北京专用)(原卷版).docx
- 5年(2020-2024)高考政治真题分类汇编专题08 社会进步(我国的个人收入分配与社会保障)(原卷版).docx
- 专题07 探索世界与把握规律-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 5年(2020-2024)高考政治真题分类汇编专题06 经济体制(我国的社会主义市场经济体制)(原卷版).docx
- 专题11 全面依法治国(治国理政的基本方式、法治中国建设、全面推进依法治国的基本要求)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题17 区域联系与区域协调发展-【好题汇编】十年(2015-2024)高考地理真题分类汇编(解析版).docx
- 专题01 中国特色社会主义-5年(2020-2024)高考1年模拟政治真题分类汇编(原卷版).docx
最近下载
- NB_T 31083-2016风电场控制系统功能规范.pdf
- 德兴隆_PVC胶粒_A2190072365101001_2019.4.11_REACH检测报告英文版.pdf VIP
- 输液港植入术术后护理.pptx VIP
- 血液系统疾病(西安交通大学)中国大学MOOC慕课章节测验答案(课程ID:1462060167).pdf
- GB 1499.2-2024 钢筋混凝土用钢 第2部分:热轧带肋钢筋.pdf
- 征信简版电子版PDF个人信用报告必威体育精装版版2024年可编辑带水印模板.pdf
- 《高中64篇必考古诗文》.doc VIP
- Rota润唐 RTBR-601馒头面包机 馒头魔法盒说明书用户手册.pdf
- 《洋流》教学设计-优秀教案.docx
- 新人音版高中音乐必修“音乐鉴赏”《高山流水志家国——流水》说课稿.doc
文档评论(0)