黑马程序员技术交流社区

标题: 取值范围与近似值 [打印本页]

作者: Jasonmes    时间: 2016-4-20 15:59
标题: 取值范围与近似值
#include <stdio.h>#include <stdlib.h>int main(){    typedef struct _FP_SIGLE{        unsigned int nMantissa : 23;  //尾数部分        unsigned int nExponent :  8;  //指数部分        unsigned int nSign     :  1;  //符号位    } FP_SINGLE;    float a = 128.101f;    FP_SINGLE* p = (FP_SINGLE*)&a;    printf("%f\n", a);    printf("%d, %#X, %#X\n", p->nSign, p->nExponent-127, p->nMantissa);    system("pause");    return 0;}
像上面这行代码那样,我看不懂typedef struct_EP_SINGLE这个是什么意思?有什么作用?为什么这么用?

作者: Jasonmes    时间: 2016-4-20 16:01
#include <stdio.h>
#include <stdlib.h>
int main()
{
    typedef struct _FP_SIGLE{
        unsigned int nMantissa : 23;  //尾数部分
        unsigned int nExponent :  8;  //指数部分
        unsigned int nSign     :  1;  //符号位
    } FP_SINGLE;

    float a = 128.101f;
    FP_SINGLE* p = (FP_SINGLE*)&a;
    printf("%f\n", a);
    printf("%d, %#X, %#X\n", p->nSign, p->nExponent-127, p->nMantissa);

    system("pause");
    return 0;
}
作者: y977975092    时间: 2016-4-20 22:38
struct _FP_SIGLE 表示定义一个结构体类型,_FP_SIGLE是结构体类型名,  typedef可以简单的认为给别人起外号。
这样 typedef struct _FP_SIGLE{
        unsigned int nMantissa : 23;  //尾数部分
        unsigned int nExponent :  8;  //指数部分
        unsigned int nSign     :  1;  //符号位
    } FP_SINGLE;
表示的是定义一个 struct _FP_SIGLE类型的结构体,然后用typedef重新给这个结构体起名为FP_SINGLE
这这种用法很常见,主要体现在typedef上,就是重新起了一个名字,方便使用。
作者: 烛风小糊涂    时间: 2016-4-20 22:54
typedef是自定义类型,基础班的视频讲的很详细的!
作者: king、小白    时间: 2016-4-20 23:18
就是一个结构体类型
作者: Jasonmes    时间: 2016-4-21 00:39
y977975092 发表于 2016-4-20 22:38
struct _FP_SIGLE 表示定义一个结构体类型,_FP_SIGLE是结构体类型名,  typedef可以简单的认为给别人起外 ...

哦哦,不错,比较清楚,因为我自学,百度那里找到的资料我看得不怎么明白。
作者: Jasonmes    时间: 2016-4-21 00:40
烛风小糊涂 发表于 2016-4-20 22:54
typedef是自定义类型,基础班的视频讲的很详细的!

ios基础班会介绍这些东西吗?
作者: Jasonmes    时间: 2016-4-21 00:42
king、小白 发表于 2016-4-20 23:18
就是一个结构体类型

为什么这么用?
作者: king、小白    时间: 2016-4-21 01:24
Jasonmes 发表于 2016-4-21 00:42
为什么这么用?

使用typedef语句可以让已有的数据类型重新起一个可读性更强的名字,也可以让程序更加简单
作者: y977975092    时间: 2016-4-21 06:09
Jasonmes 发表于 2016-4-21 00:39
哦哦,不错,比较清楚,因为我自学,百度那里找到的资料我看得不怎么明白。 ...

我也是自学,正在走第二个流程
作者: yuanmeng    时间: 2016-4-21 09:10
示的是定义一个 struct _FP_SIGLE类型的结构体,然后用typedef重新给这个结构体起名为FP_SINGLE 这这种用法很常见,typedef
作者: 烛风小糊涂    时间: 2016-4-21 22:30
Jasonmes 发表于 2016-4-21 00:40
ios基础班会介绍这些东西吗?

有的,在C语言的第13天




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2