C程序中的错误
C程序中的错误,c,gcc,mingw,C,Gcc,Mingw,而(((长)(1000*比率*((长)时钟()-(长)t0))%100)/1000)左侧缺少一个参数。这将分析: while ((((long)(1000*ratio*((long)clock()-(long)t0))%100)/1000)<Data_Read_Rate); 而(((长)(1000*ratio*((长)clock()-(长)t0))%100)/1000)父母身份不匹配。顺便说一句,我会编辑代码并将其分解为多个语句以使其更具可读性。右括号太多 另外,您的逻辑太长太深了,我不
而(((长)(1000*比率*((长)时钟()-(长)t0))%100)/1000)左侧缺少一个参数。这将分析:
while ((((long)(1000*ratio*((long)clock()-(long)t0))%100)/1000)<Data_Read_Rate);
而(((长)(1000*ratio*((长)clock()-(长)t0))%100)/1000)父母身份不匹配。顺便说一句,我会编辑代码并将其分解为多个语句以使其更具可读性。右括号太多
另外,您的逻辑太长太深了,我不想尝试找出代码应该是什么。只是vim
用红色突出显示了最后一个)
,这意味着它不匹配。我建议你考虑使用一些中间变量并简化它的逻辑,把它扩展成几行而不是一行。 你在左边缺少一个副词。 你有太多的开括号和闭括号。如果您使用的是visual studio,它将帮助您使用Ctrl+'['和Ctrl+']'键来匹配开始和结束/大括号
另一个建议是分组并通过保持表达式的可读性将其分成多行。还要尽量在后面的括号之间留出空间,以便对表达式进行逻辑分组。因为编译器会像人类读者一样对代码感到困惑吗?[颤抖]
空格和换行符是免费的,并且很好地增加了可读性
while ( ( (long)( 1000 * ratio * ( (long)clock() - (long)t0 ) ) % 100 ) / 1000 ) < Data_Read_Rate );
while(((长)(1000*比率*((长)时钟()-(长)t0))%100)/1000)
您也可以取消clock()和t0的(长)强制转换(假设它们都是int)。在减法之前使用它们不会改变结果。要使整个计算变长,只需使其中一个参数变长就足够了,最短的方法是使用文字1000:
while ( ( ( 1000l * ratio * ( clock() - t0 ) ) % 100 ) / 1000 ) < Data_Read_Rate );
while((1000l*比率*(时钟()-t0))%100)/1000)
嗯。。。等待取某物,模100(产生一个介于0和99之间的数字),然后除以1000?你的结果总是0
哦,你忘了匹配括号了 如前所述,括号不匹配
对于这样的表达式,使用一些临时变量来简化语句几乎总是更好的。不过,以下提示可能会有所帮助
计算括号中的每一个加1(“每一个减1”)。你应该得到一个0的答案。肯定回答意味着你有一个额外的“(“否定回答意味着你有一个额外的”)”
重新格式化表达式以使其更易于阅读,可能会将其拆分为几行,每个逻辑语句放在一行上
使用语法突出显示代码编辑器。这应该会为您显示错误匹配
那里没有代币。你能再给我讲讲背景吗?对不起。。。我没有把它标记为“代码”并且<丢失了。当你把那些语句分解成变量时,像缺少括号这样的小错误就不那么常见了。是的。。。我会将它们分解成多个语句。我会开始使用更好的编辑器…:)并感谢您提供有关使用sleep()的提示。不,这在语义层面上没有意义。(x%100)/1000==0。这正是我在不做家庭作业的情况下写+1的简明答案,也是一个很好的建议;更多语句/行以提高可读性。
while ( ( ( 1000l * ratio * ( clock() - t0 ) ) % 100 ) / 1000 ) < Data_Read_Rate );