C语言中函数被多次调用,如何正确得将每次求的的值复制出来,求高手。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中函数被多次调用,如何正确得将每次求的的值复制出来,求高手。相关的知识,希望对你有一定的参考价值。

for(i=0;i<M;i++)

if(ctest[i]!=1) // 这个是限制条件,可以忽略

Rechange(c[i]); // 调用函数void Rechange(int num[4]),是希望对每个c[i][4]进行处理
for(j=0;j<32;j++)
cc[i][j]=nnum[j]; //这个是函数中参数的赋值,实际运行的时候总是复制了刚开始那一个。不知道为什么



也把函数粘上吧
void Rechange(int num[4])


int test[4][8];
for(j=0;j<4;j++)

i=0;
while(num[j]!=0)

test[j][i]=num[j]%2;
num[j]/=2;
i++;


for(k=i;k<8;k++)
test[j][k]=0;


for(j=0;j<8;j++)
nnum[j]=test[0][7-j];
for(j=0;j<8;j++)
nnum[j+8]=test[1][7-j];
for(j=0;j<8;j++)
nnum[j+16]=test[2][7-j];
for(j=0;j<8;j++)
nnum[j+24]=test[3][7-j];


其中函数中有一个nnum[32]的数组,程序的想法是每一个i,都能产生想对应的cc[i][32]
。但是实际运行的时候不理想,希望高手能够给出一个合理的方法!

参考技术A c语言中求绝对值的函数有两个:abs()和fabs()。
abs()
是用来求整型表达式的绝对值,比如:abs(x)
就是求整型变量x的绝对值。
fabs()
是用来求浮点型表达式的绝对值,比如:abs(x)
就是求浮点型变量(float型或double型)x的绝对值。
参考技术B 这一段没有看懂,你每一次调用后,就把test的各个数值给赋值为0,不知是否和这个有关。

for(k=i;k<8;k++)
test[j][k]=0;
参考技术C 你直接说你想实现的目标吧,程序设计思路好像复杂了点

ActionScript 3 - 作为单击处理程序的匿名函数在每次单击时被多次调用

【中文标题】ActionScript 3 - 作为单击处理程序的匿名函数在每次单击时被多次调用【英文标题】:ActionScript 3 - anonymous function as click handler is called multiple times per click 【发布时间】:2011-03-30 14:42:30 【问题描述】:

我有一个标记为“blueButton”的按钮,我想使用匿名函数来处理点击,如下所示:

blueButton.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void 
 trace( "-----click detected-----" );
 // now do other stuff
);

问题是,每次点击都会多次调用点击处理程序。调用的次数似乎是随机的(有时 2,有时 4,有时 3 等)。我的代码中是否遗漏了某些内容,或者我设置的按钮有误?

我还注意到它似乎总是在第一次点击时被调用一次。在第一次点击之后,它开始被调用更多次,也许这与它有关?

提前感谢您的帮助

【问题讨论】:

【参考方案1】:

从哪里调用 blueButton.addEventListener? 该行可能被多次调用,然后可能会添加多个侦听器,特别是如果它是在某些视图状态 onShow 代码之后添加的。 尝试在 blueButton.addEventListener 上方添加 trace("---- 添加事件侦听器 ----" ) 并确保仅显示一次。

另外,您是否尝试过只在其中包含 trace() 语句的代码?那还是有问题吗? 您可以通过删除事件侦听器中的所有其他代码来拆分差异。 “其他东西”可能会触发代码运行以再次添加按钮事件侦听器。

【讨论】:

【参考方案2】:

我会尝试做两件事来解决这个问题:

1) 确保设置 blueButton.mouseChildren = false。在某些鼠标事件中,如果指定的 DisplayObject 内部有其他 DisplayObject 子级,flash 将为每个子级调度鼠标事件。

2) 不要使用匿名函数,因为当您偶尔使用它们时,Flash 的行为会有些奇怪。我以前遇到过和你一样的问题,一旦我停止使用匿名函数,问题就消失了。

【讨论】:

【参考方案3】:

你也可以试试

event.stopImmediatePropagation;

【讨论】:

以上是关于C语言中函数被多次调用,如何正确得将每次求的的值复制出来,求高手。的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何交换两个指针变量的的值

C语言,主函数调用一个随机函数,让每次循环调用的值都不一样

c语言的随机函数怎样用,且调用后的值每次都不一样。

C语言中,同一个函数可以被定义多次吗?

c语言如何检测函数第一次的值

如何通过调用函数交换两个变量的值及常见误区