C的一些知识【持续更新】
2013-03-28 22:58
162 查看
1、要显示八进制、十六进制前缀,使用%#o、%#x、%#X,分别显示o、0x、0X前缀。
2、C语言程序要特别注意数据类型的实际字节数,在某些系统中,char不一定是8位,int不一定是32位等等。C99提供了inttype.h头文件,可以提供确切的字节数数据类型,例如uint32_t表示32位无符号整数类型。注意,要使用inttype.h,环境必须支持C99。
3、C语言中浮点数精度问题:float型数据精度为至少6位有效数字,是指想12.3456789这样的数据至少前6位是有效的,即能正确表示12.3456,而后面的数据就不一定正确了。验证程序如下:
结果如下图:
从第三个数据可以看出在第八位数时,数据不再正确。从所有数据可以看出,在我的环境中,浮点型数据(float型)从第八位不再保证正确。
4、sizeof后跟数据类型时,必须加上括号,而跟变量时,则不需要加括号。举例,sizeof(int),int a; sizeof a。
2、C语言程序要特别注意数据类型的实际字节数,在某些系统中,char不一定是8位,int不一定是32位等等。C99提供了inttype.h头文件,可以提供确切的字节数数据类型,例如uint32_t表示32位无符号整数类型。注意,要使用inttype.h,环境必须支持C99。
3、C语言中浮点数精度问题:float型数据精度为至少6位有效数字,是指想12.3456789这样的数据至少前6位是有效的,即能正确表示12.3456,而后面的数据就不一定正确了。验证程序如下:
/** *功能:验证浮点数精度,以float类型举例 *作者:赵聪 *时间:2013-3-29 */ #include <stdio.h> /** *主程序 */ int main(void){ /** *测试数据 */ float f_test1 = 0.123456789; float f_test2 = 1.23456789; float f_test3 = 12.3456789; float f_test4 = 123.456789; float f_test5 = 1234.56789; float f_test6 = 12345.6789; float f_test7 = 123456.789; float f_test8 = 1234567.89; float f_test9 = 12345678.9; float f_test10 = 123456789; /** *打印 */ printf("%.10f\n",f_test1); printf("%.10f\n",f_test2); printf("%.10f\n",f_test3); printf("%.10f\n",f_test4); printf("%.10f\n",f_test5); printf("%.10f\n",f_test6); printf("%.10f\n",f_test7); printf("%.10f\n",f_test8); printf("%.10f\n",f_test9); printf("%.10f\n",f_test10); return 0; }
结果如下图:
从第三个数据可以看出在第八位数时,数据不再正确。从所有数据可以看出,在我的环境中,浮点型数据(float型)从第八位不再保证正确。
4、sizeof后跟数据类型时,必须加上括号,而跟变量时,则不需要加括号。举例,sizeof(int),int a; sizeof a。
相关文章推荐
- C#的一些小知识备记(持续更新)
- iOS 开发过程中记录的一些小知识(持续更新...)
- PBX的一些基础知识(持续更新中)
- 关于在学习知识和运用知识中的一些个人的见解(后续会持续更新)
- 【JavaScript 基础知识】一篇关于 JavaScript 一些知识点的总结 —— 持续更新
- excel的一些小知识,持续更新
- C++的一些常用知识(持续更新)
- 关于一些平常JAVA知识及遇到问题的积累(持续更新)
- [置顶] 对知识的一些理解<持续更新中>
- 『ExtJS』使用中需要注意的一些事(持续更新)
- 关于编码转换的一些问题和整理(持续更新)
- linux 系统相关的一些小知识点(持续更新)
- 前端小技巧(持续更新,一些遇到问题的解决方案)
- 最近遇到的一些笔试面试题目(持续更新中。。)
- 一些好的博客收集(持续更新中)
- web响应式布局一些基本css 持续更新
- 收集的一些好的网址[持续更新]
- 一些学习资料的整理(持续更新中)
- 论文中著名会议和期刊的一些介绍(持续更新中)
- windows使用vmwave的一些累积命令(持续更新中)