- 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 */
您可能关注的文档
最近下载
- 消除艾滋病、梅毒和乙肝母婴传播工作实施方案(2025版) .pdf VIP
- 工作流培训课件.ppt
- 24J306:窗井、设备吊装口、排水沟、集水坑.docx VIP
- 人教版八年级物理上册第五章《透镜及其应用》第一节`透镜同步练习 含答案.docx VIP
- 人教版九年级上册初中美术全册教案(教学设计).doc VIP
- PW2051_2.0数据手册下载.pdf VIP
- 接地电阻测试记录表(填写).docx VIP
- 2023整理全国汉字听写大赛题库及答案.pdf VIP
- 部编版小学道德与法治六年级下册8《科技发展造福人类》教学课件.ppt VIP
- 2026年江苏农林职业技术学院单招职业适应性测试必刷测试卷必考题.docx VIP
文档评论(0)