zoukankan      html  css  js  c++  java
  • C语言之位域小记

    在《Applied C:An Interoduction and more》当中讲了讲位域的知识,于是我也想学学,碰巧看到一道C语言的题目,如下:


    #include <stdio.h>
    
    struct mybitfields
    {
    	unsigned short a : 4;
    	unsigned short b : 5;
    	unsigned short c : 7;
    }test;
    
    int main(void)
    {
    	int i = 0;
    	test.a = 2;
    	test.b = 3;
    	test.c = 0;
    	i = *((short *)&test);
            printf("%d",i);
            return 0;
    }

    之前还不懂

    i = *((short *)&test);
    这条语句是怎么工作的;问了一个高手后(老罗),现在知道为啥了。

    &test 是取test的地址,
     (short *)&test是把test的地址转换为short的地址
     *((short *)&test)取这个地址指向的值

    所以的i的之就是0000000000110010 (刚好是short类型的2个字节的大小)= 50.

  • 相关阅读:
    Orleans介绍
    Orleans入门
    mongodb for windows安装
    ASP.NET Identity
    OWIN与Katana
    手动搭建ABP2.1.3 Zero——基础框架
    ABP学习笔记
    ABP-Zero模块
    ABP单元测试
    ABP-JavaScript API
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007750.html
Copyright © 2011-2022 走看看