c 代码中的错误:“{”标记之前需要标识符或“(”

问题描述 投票:0回答:3

程序简要概述(3体问题):

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

double ax, ay, t;
double dt;
/* other declarations including file output, N and 6 command line arguments */
...

int main(int argc, char *argv[])
{
  int validinput;
  ...
  /* input validation */

  output = fopen("..", "w");
  ...
  /* output validation */

  for(i=0; i<=N; i++)
  {
    t = t + dt;
    vx = ...
    x = ...
    vy = ...
    y = ...
    fprintf(output, "%lf %lf %lf\n", t, x, y);
  }

  fclose (output);

}

/* ext function to find ax, ay at different ranges of x and y */
{ 
  declarations

  if(x < 1)
  {
    ax = ...
  }

  else if(x==1)
  {
    ax = ...
  }
  ...
  else
  {
    ...
  }

  if(y<0)
  {
    ...
  }

  ...

}

我在“{ /* ext function to find ax, ay at different range of x and y */”行上收到错误,说

"error: expected identifier or '(' before '{' token"

我认为这可能是由于没有以正确的方式调用或创建外部函数导致的

c function error-handling compiler-errors
3个回答
6
投票

你的函数需要一个名字! 任何函数之外的代码块在 C 中都是没有意义的。

事实上,您的示例中存在一些语法/概念错误。 请清理它并澄清你的问题 - 当你这样做时我会尽力回答更好。


5
投票

现在,让我们看下面的例子。

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("hello world \n");
    return 0;
}

{
    printf("do you see this?!\n");
}

如果你编译上面的程序,将会出现以下错误

$ gcc q.c 
q.c:10:1: error: expected identifier or ‘(’ before ‘{’ token
$ 

这是因为 gcc 编译器期望在

identifier
之前有一个
{
。所以我们需要将上面的程序更新如下

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    printf("hello world \n");
    return 0;
}

void function()
{
    printf("do you see this?!\n");
    return;
}

它会工作得很好。

$ gcc q.c 
$ ./a.out 
hello world 
$ 

希望有帮助!


0
投票

包括 int main() {

浮动瓦亚苏= 18; printf("eppudu naa 年龄 %d “,瓦亚苏);

瓦亚苏=100; printf("mari eppudu naa 年龄 %d", vayasu);

返回0; }

© www.soinside.com 2019 - 2024. All rights reserved.