zoukankan      html  css  js  c++  java
  • 2011 无代码无意义 test_内存之 变量的边界 (图)

    (引:hxf说的那个宏: #define OFFSET(A,a)  & ( (struct A *)0->)a )

    还有hxf 推论出的 struct 的对齐,(32bit, 当没有使用pragma pack(参数),) 其中最大字节的元素 绝对了最大大小(整数倍)。

    看完这次的代码,主要是 变量的边界值问题,

    /******************************/end

    #include "stdafx.h"

    #include "test_.h"

    void test_char_内存分布(){

        //下面看看char 类型的 内存分布

      //方案:使用直接.一句话 char类型赋值 有符号的数字,好听讲究

        char ch_b=-127;

        printf("%x\n",ch_b);

        ch_b=-128;//临界点,

        printf("%x\n",ch_b);

        ch_b=-129;//已经溢出

        printf("%x\n",ch_b);

        ch_b=-1;//知道这个就像0xff..就跟1 A a 31 41 61 基础

        printf("%x\n",ch_b);

     

        //ADV:有空127 128..同样

        ch_b=0;

        printf("%x\n",ch_b);

        ch_b=127;//临界点

        printf("%x\n",ch_b);

        ch_b=128;//溢出点

        printf("%x\n",ch_b);

     

        //积累:看到内存,没有看到符号,就没有意义

       

    clip_image002

    //第一种方案,准备 随意输入数字测试

        //循环测试失败。。getchar 总是ascii...scanf输入数字,异常

        //ch_b==getchar();//吃掉scanf的回车

       

    while (0)

        {

           //ch_b=getchar();//只有一个getchar()重要尾随一个a ...when printf format is x

           scanf("%c",ch_b);

           printf("%x\n",ch_b);

           //ch_b==getchar();//吃回车

        }

    }

    void test_int_内存分布(){

       

        int i_a=-1;

        printf("%x\n",i_a);// 0xffffffff

        i_a=~i_a; //0.就是0

        printf("%x\n",i_a);

    }

  • 相关阅读:
    JVM常量池
    Java内存分配之堆、栈和常量池
    Visual studio code快捷键
    spring 注解方式配置Bean
    Spring注解@Qualifier
    编程问题总结
    七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理
    七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL
    七天学会ASP.NET MVC (四)——用户授权认证问题
    七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理
  • 原文地址:https://www.cnblogs.com/titer1/p/2303960.html
Copyright © 2011-2022 走看看