ошибка в коде c: ожидаемый идентификатор или маркер '(' before '{' - PullRequest
4 голосов
/ 26 января 2012

Краткий обзор программы (проблема с 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, чтобы найти ax, ay в различных диапазонах x и y * /', говоря"error: expected identifier or '(' before '{' token"

Я думаю, это может быть связано с тем, что вы не вызываете или не создаете внешнюю функцию правильным образом

Ответы [ 2 ]

6 голосов
/ 26 января 2012

Вашей функции нужно имя! Блок кода вне какой-либо функции не имеет смысла в C.

На самом деле в вашем примере несколько синтаксических / концептуальных ошибок. Пожалуйста, очистите его и уточните свой вопрос - я постараюсь ответить лучше, когда вы это сделаете.

5 голосов
/ 26 января 2012

Теперь давайте рассмотрим следующий пример.

#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 
$ 

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...