gpt4 book ai didi

c - 函数参数列表后的变量声明

转载 作者:太空狗 更新时间:2023-10-29 17:00:56 26 4
gpt4 key购买 nike

<分区>

我无意中发现了一段 C 代码,其中变量似乎是在函数的参数列表之后声明的。我不知道这是可能的。

在代码中,int rint *a 紧跟在arr2int 的参数列表之后声明。这对 arr2int 的局部变量 ar 有何影响?

我想了解代码的实际原因是,如果我让它在我的 linux x86 a[1] = 1 at //MARKER 上运行,当 arr2int 是第一次调用。

但是如果我让它在基于 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);
}

以及调用方法:

void generateEncodingTable(){
register int i,j;
long temp;
int seed = 133757;

printf("\n[I] - Generating Encoding Table\n");
for (pattern = 0; pattern < 4096; pattern++) {
temp = pattern << 11; /* multiply information by X^{11} */
encoding_table[pattern] = temp + get_syndrome(temp);/* add redundancy */
}

decoding_table[0] = 0;
decoding_table[1] = 1;
temp = 1;
for (i=2; i<= 23; i++) {
temp *= 2;
decoding_table[get_syndrome(temp)] = temp;
}

a[1] = 1; a[2] = 2;

temp = arr2int(a,2);
decoding_table[get_syndrome(temp)] = temp;
for (i=1; i<253; i++) {
nextcomb(23,2,a);
temp = arr2int(a,2);
decoding_table[get_syndrome(temp)] = temp;
}

a[1] = 1; a[2] = 2; a[3] = 3;
temp = arr2int(a,3);
decoding_table[get_syndrome(temp)] = temp;
for (i=1; i<1771; i++) {
nextcomb(23,3,a);
temp = arr2int(a,3);
decoding_table[get_syndrome(temp)] = temp;
}
}

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com