所以我需要写一个有3个参数的函数,所有的参数都是结构,主文件是用C写的,函数是用ARM汇编的。所以我想问一下如何操作这些结构中的数据?因为所有数据都单独存储在每个寄存器中。
例如:
Struct contains an int and an array
Struct { int a, int b[] }
function(struct a, struct b, struct c)
因此,程序集中的数据存储方式类似于R0=struct a. int a、R1=struct a. int b[0]
我试着把所有东西都推送到堆栈上,但我得到了同样的结果。那么如何操作所有结构中的数组呢?
如我所知,如果int变量(值类型)直接在类(引用类型)中声明,则在堆上分配的变量的内存。
但是,如果类中有一个方法,并且变量是在方法中声明的,或者是一个参数,则在堆栈上分配的内存。
public class A
{
int x; // heap
public void Func(int y) // stack
{
int z; // stack
}
}
我怎么看,内存分配在哪里?