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);

}

原文地址:https://www.cnblogs.com/titer1/p/2303960.html