Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C程序中的错误_C_Gcc_Mingw - Fatal编程技术网

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 );