A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jasonmes 中级黑马   /  2016-4-20 15:59  /  2025 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#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这个是什么意思?有什么作用?为什么这么用?

11 个回复

倒序浏览
#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;
}
回复 使用道具 举报
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上,就是重新起了一个名字,方便使用。
回复 使用道具 举报
typedef是自定义类型,基础班的视频讲的很详细的!
回复 使用道具 举报
就是一个结构体类型
回复 使用道具 举报
y977975092 发表于 2016-4-20 22:38
struct _FP_SIGLE 表示定义一个结构体类型,_FP_SIGLE是结构体类型名,  typedef可以简单的认为给别人起外 ...

哦哦,不错,比较清楚,因为我自学,百度那里找到的资料我看得不怎么明白。
回复 使用道具 举报
烛风小糊涂 发表于 2016-4-20 22:54
typedef是自定义类型,基础班的视频讲的很详细的!

ios基础班会介绍这些东西吗?
回复 使用道具 举报
king、小白 发表于 2016-4-20 23:18
就是一个结构体类型

为什么这么用?
回复 使用道具 举报

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

我也是自学,正在走第二个流程
回复 使用道具 举报
示的是定义一个 struct _FP_SIGLE类型的结构体,然后用typedef重新给这个结构体起名为FP_SINGLE 这这种用法很常见,typedef
回复 使用道具 举报
Jasonmes 发表于 2016-4-21 00:40
ios基础班会介绍这些东西吗?

有的,在C语言的第13天
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马