C 括号前的表达式?

C 括号前的表达式?,c,C,我对编程非常陌生,我正在尝试创建一个简单的延迟,但我不断得到错误——“显然调用的括号前面的表达式必须有(指向-)函数类型” 此代码用于游戏,它应该稍微延迟球拍的移动 void AI(void) { unsigned int delay = 1000; if (yR2 > yBall) { if (yR2 > RACKET ) { delay(1000); yR2--;

我对编程非常陌生,我正在尝试创建一个简单的延迟,但我不断得到错误——“显然调用的括号前面的表达式必须有(指向-)函数类型”

此代码用于游戏,它应该稍微延迟球拍的移动

void AI(void)
{
    unsigned int delay = 1000;

    if (yR2 > yBall)
    {
        if (yR2 > RACKET ) 
        {
            delay(1000);
            yR2--; 
        }
    }
我不知道为什么这不起作用,我已经试了很久了。它有什么问题,为什么我会犯这样的错误

编辑:

我已经更新了代码。这似乎是正确的,但当我尝试使用延迟时,整个屏幕都有点延迟,而不仅仅是预期的球拍(yR2)

为什么会这样

void delay(int n)
{
volatile int i;
for (i = 0 ; i < n ; i++)
  ;
}


void AI(void)
{
if (yR2 > yBall)
{
if (yR2 > RACKET) 
{
   delay(1000);
yR2--;
}
}
无效延迟(int n)
{
挥发性int i;
对于(i=0;iyBall)
{
如果(yR2>球拍)
{
延迟(1000);
yR2--;
}
}

错误是指这一行:

delay(1000);
这里,您(显然)试图将
delay
作为函数调用

但是,
延迟
声明为:

unsigned int delay = 1000;

它只是一个数字,不是函数,因此您不能调用它。

错误是指这一行:

delay(1000);
这里,您(显然)试图将
delay
作为函数调用

但是,
延迟
声明为:

unsigned int delay = 1000;


它只是一个数字,不是一个函数,因此您不能调用它。

delay
在您的代码中是一个变量
unsigned int
。如果之前声明了这样一个函数,它将被屏蔽(覆盖)通过该变量如果你有一个要调用的延迟函数,那么通过定义一个同名的变量来停止对它的跟踪。也就是说——将你的整数重命名为除
delay
之外的其他名称,这样就不会干扰你调用名为
delay
的函数的能力。请不要用w重写你的问题隐藏原件的日期。另外,您的
delay()
函数不做任何事情,这意味着它可能会被任何合适的优化编译器完全优化掉。你发布了你的问题,人们对它进行了回答和评论,然后你更改了你的问题,使答案过时。不要这样做。如果你用现在的代码发布一个新问题,可能有一个原因回答很合理,但我不打算在这里发布。(提示:
delay(1000)
可能只需要很少的时间即可执行。提示:有更好的方法可以延迟指定的时间,但它们是特定于系统的。)您原来的问题已得到回答。请发布一个新问题。
delay
在您的代码中是一个变量
unsigned int
。如果以前声明过这样一个函数,它将被屏蔽(重写)通过该变量如果你有一个要调用的延迟函数,那么通过定义一个同名的变量来停止对它的跟踪。也就是说——将你的整数重命名为除
delay
之外的其他名称,这样就不会干扰你调用名为
delay
的函数的能力。请不要用w重写你的问题隐藏原件的日期。另外,您的
delay()
函数不做任何事情,这意味着它可能会被任何合适的优化编译器完全优化掉。你发布了你的问题,人们对它进行了回答和评论,然后你更改了你的问题,使答案过时。不要这样做。如果你用现在的代码发布一个新问题,可能有一个原因回答很合理,但我不打算在这里发布。(提示:
delay(1000)
可能只需要很少的时间即可执行。提示:有更好的方法可以延迟指定的时间,但它们是特定于系统的。)您原来的问题已得到回答。请发布一个新问题。谢谢您的回复。我将如何解决此问题?我是否需要创建函数,如果需要,它将是什么样子。我编程时间不长,很抱歉这些问题不那么智能。@nothing909为什么要将
unsigned int delay=1000;
delay(1000)放在
首先在您的代码中?我只是没有最好的编程知识,也没有完全理解我在做什么。它声明变量int delay…然后调用它delay(1000).我现在发现它不是这样工作的。.调用int类型的变量时,你希望它做什么?如果你不告诉我们你希望代码做什么,我们就不能告诉你如何更改它以得到你想要的。@nothing 909“调用变量”是什么意思?那…没什么。谢谢你的回答。我该如何解决这个问题?我需要创建一个函数吗?如果需要的话,它会是什么样子。我编程时间不长,很抱歉我的问题不那么聪明。@nothing909为什么你要把
unsigned int delay=1000;
delay(1000)放进去
首先在您的代码中?我只是没有最好的编程知识,也没有完全理解我在做什么。它声明变量int delay…然后调用它delay(1000).我现在发现它不是这样工作的。.调用int类型的变量时,你希望它做什么?如果你不告诉我们你希望代码做什么,我们就不能告诉你如何更改它以得到你想要的。@nothing 909“调用变量”是什么意思?那…不是一回事。