我简单地讨论了一个C代码,其中变量似乎是在函数的参数列表之后声明的.我不知道这是可能的.
在代码中,int r并int *a在参数列表之后声明arr2int.这将如何影响局部变量a和r的arr2int?
实际的原因,我想了解的代码是因为如果我让它在我的Linux的x86运行a[1] = 1在//MARKER当arr2intIST称为拳头时间.
但是,如果我让它在一个基于ARM的omap4开发板上运行a[1]=0,我不知道为什么会有区别.
有人可以对此发表评论吗?
long arr2int(a,r)
int r;
int *a;
{
int i;
long mul, result = 0, temp;
//MARKER
for (i=1; i<=r; i++) {
mul = 1;
temp = a[i]-1;
while (temp--)
mul = mul << 1;
result += mul;
}
return(result);
}
Run Code Online (Sandbox Code Playgroud)
和调用方法:
void generateEncodingTable(){
register int i,j;
long temp;
int seed = …Run Code Online (Sandbox Code Playgroud)