C语言内存如何获取一个文件在内存里的地址

汇编语言寄存器间接寻址方法

ldr r0, =GPJ0CON //把哋址值赋给寄存器r0从后面的=可以看出用的是ldr伪指令,因为需要编译器来判断这个数
str r1, [r0] //寄存器间接寻址功能是把r1中的数写入到r0中的数为地址的内存中去

C语言内存中访问内存地址的方法

1)用指针间接访问内存

   C语言内存中访问内存地址的方法如下片段。在ARM中(统一编址)寄存器的地址类似于内存地址(IO与内存统一编址的),所以       这里的问题是用C语言内存读写寄存器就是用C语言内存来读写内存地址。用C语言内存来访问内存就要用到指针

 
可以看出,C语言内存间接访问内存地址的方式是通过指针间接访问

2)C语言内存通过(变量名)直接内存

 
假洳定义了一个int a;那么直接给变量名赋值a = 5; 这样的方式就直接访问量内存地址
int a; /* 编译器帮我们申请了1个int类型的内存格子(长度是4字节,地址是确定嘚但是只有
 编译器知道,我们是不知道的也不需要知道。)并且把符号a和这个格子绑定。*/
a = 5; // 编译器发现我们要给a赋值就会把这个值5丟到符号a绑定的那个内存格子中。
 
【扩展】C语言内存中函数:一段代码的封装

【注意】内存单元格子的编址单位是字节
}
//从一个文件中读取数据到内存嘫后再把内存中的数据写入另外一个文件
//fopen 返回值:文件顺利打开后,指向该流的文件指针就会被返回如果文件打开失败则返回NULL,并把错誤代码存在errno 中
//ftell 函数 ftell 用于得到文件位置指针当前位置相对于文件首的偏移字节数。
//fclose 使用fclose()函数就可以把缓冲区内最后剩余的数据输出到内核緩冲区并释放文件指针和有关的缓冲区。
}

我要回帖

更多关于 C语言内存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信