arm汇编及c
文章平均质量分 79
keepingstudying
这个作者很懒,什么都没留下…
展开
-
adr和ldr的区别
一、adr和ldr的区别同学们在学习ARM指令时,多数都会对adr和ldr这两个命令产生疑惑,那他们究竟有什么区别呢?其实这两个都是伪指令:adr是小范围的地址读取伪指令,ldr是大范围的读取地址伪指令。可实际上adr是将基于PC相对偏移的地址值或基于寄存器相对地址值读取的为指令,而ldr用于加载32为立即数或一个地址到指定的寄存器中。到这儿就会看到其中的区别了。如转载 2013-02-20 21:06:59 · 548 阅读 · 0 评论 -
C语言的inline关键字
一直以来我就认为inline关键字是C++中的。今天我看到一篇讲关于C语言的inline关键字的。本文介绍了GCC和C99标准中inline使用上的不同之处。inline属性在使用的时候,要注意以下两点:inline关键字在GCC参考文档中仅有对其使用在函数定义(Definition)上的描述,而没有提到其是否能用于函数声明(Declare)。从inline的作转载 2013-07-10 17:33:27 · 508 阅读 · 0 评论 -
栈溢出的几种情况
导致堆栈溢出主要有以下几种情况:一、局部数组过大。当函数内部的数组过大时,有可能导致堆栈溢出。例如:stack.c#include #define SIZE 1 * 1024 * 1024int main(){ int b[SIZE]; int i; for(i = 0; i < SIZE; ++i){ b[i] = i; } for(i转载 2013-06-26 10:42:32 · 2013 阅读 · 0 评论 -
char a[]和char *a的比较,数组名,数组首地址,a,&a,&a[0]
char a[]和char *a的比较指针和数组存在着一些本质的区别。当然,在某种情况下,比如数组作为函数的参数进行传递时,由于该数组自动退化为同类型的指针,所以在函数内部,作为函数参数传递进来的指针与数组确实具有一定的一致性,但这只是一种比较特殊的情况而已,在本质上,两者是有区别的。请看以下的例子: char a[] = "1234567";char *p = "转载 2014-01-14 16:15:15 · 2339 阅读 · 0 评论