Указание на структуру в C - ошибка: ожидается ')' перед маркером '*' - PullRequest
1 голос
/ 08 января 2012

Я пытаюсь скомпилировать этот код (это будет симуляция муравья Лэнгтона):

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

    typedef struct
    {
        unsigned short x, y;
        enum directions {up = 0, right, down, left} direction;
    } langtonsAnt;

    void turnAnt (lantonsAnt *pant, unsigned short quarterTurns)
    {
        pant->direction = (pant->direction + quarterTurns) % 4;
    }

    int main ()
    {
        return EXIT_SUCCESS;
    }

Однако я получаю эту ошибку:

12 | ошибка:Ожидается ')' до '*' token |

Компилятор gcc.

Я не могу понять, что не так, поскольку я уже искал в Интернете и различных ссылках.

PS Не беспокойтесь о заголовках, они нужны в других местах программы.

Ответы [ 2 ]

7 голосов
/ 08 января 2012
void turnAnt (lantonsAnt *pant, unsigned short quarterTurns)

должно быть

void turnAnt (langtonsAnt *pant, unsigned short quarterTurns)
3 голосов
/ 08 января 2012

В пропущенном указателе на функцию turnAnt отсутствует буква «g»!Заметьте «g» после «lan» в имени структуры?

typedef struct
    {
        unsigned short x, y;
        enum directions {up = 0, right, down, left} direction;
    } langtonsAnt;

Но тогда в вашей функции turnAnt в «lantonsAnt * pant» отсутствует «g»!Это должно выглядеть так:

void turnAnt (langtonsAnt *pant, unsigned short quarterTurns)
{
    ......
...