学习心得(一)

来源:互联网 发布:南京思瀚网络怎么样 编辑:程序博客网 时间:2024/04/28 21:51

 

 

    春天是学习的好时机,很久没提高自己了,所以想通过看书来查漏补缺。工作中一些小处还真难到了我,由此更加坚定了我再次学习的决心。仅以此文纪录我的心得,见证自己的提高历程。

1.float的范围
    书上写的是e-038到e+038。
    疑问:float没有负数?
    答:肯定有负数。
    推论:把e-038到e+038理解为绝对值范围,那么最大值为e+038,最小值-e+038。不能表示0,造成了float不能和0比较。
    推论验证:通过网上查找,普遍认为是:正负3.4e+038。
    结论:通过查找float.h,得到MAX = 3.402823466e+38,MIN = 1.175494351e-38。

    另:float和0比较的语句是(f > -0.000001 && f < 0.000001),不是(-0.000001 < f < 0.000001)。

2.数据类型所占的空间
    long int占4字节,在32位机器中和int无异。在16位机器中,int是2字节,为了得到4字节,使用long int。
    在嵌入式开发中,要根据取值范围灵活运用int,如int8,uint16,int32。

3.浮点数运算
    所有浮点数运算都是double下进行。
    在有的环境下,不支持浮点运算;支持的也容易出错。要谨慎使用,注意类型转化。

4.无值型数据类型void
    int fun1(void):fun1不带参数。
    fun2(void * p):fun2可以带指向任何类型的指针。
    (void)fun3():忽略fun3的返回值。

5.不同的类型间的相互转化
    如果转换在赋值号两边相互进行,则右边的类型转换位左边的类型。
    从float转int,把小数部分截断;double转float由四舍五入获得;long转short或char去掉高位部分。