code2012

加油,坚持,努力,自信
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C指针地址运算

Posted on 2011-06-07 20:58  code2012  阅读(429)  评论(0编辑  收藏  举报

typedefunsigned intu32;

typedefunsigned shortu16;

typedefunsigned charu8;

在start.c 里面 定义

   u8  gdt_ptr[6];

    1. u32*(&gdt_ptr[2])  //  取得数组第2元素的地址,并转化为 四字节地址!

在kernel.asm

extern gdt_ptr ;导入全局变量

      sgdt [gdt_ptr];

 

 

------------------------------------------------------

 


functionA()
{
     struct TT A; //此时A已经取得栈空间
   
    int addr =1000;

    Function(addr, &A)
    
}  



Function(int addr,  struct TT *Ptr)
{
       struct TT *Tmp;
       for(int i= 0 ;  i < Vector.size() ; i++)
       {
          Tmp = & Vector[i] ;  左右边都是地址 
            if( add  == Tmp->addr)
              
          1.Ptr->x  = Tmp->x;   //复制操作
            2.memrcy(Ptr,Tmp ,sizeof(Tmp ));
            
               首先明白什么地址 和 地址里面的内容
                  

        }

}