Передача структуры в функцию

Я - новый программист на C, и я хотел знать, как я могу передатьstruct до функции. Я получаю сообщение об ошибке и не могу понять правильный синтаксис, чтобы это сделать. Вот код для этого ....

Struct:

struct student{
    char firstname[30];
    char surname[30];
};

struct student person;

Вызов:

addStudent(person);

Прототип:

void addStudent(struct student);

и фактическая функция:

void addStudent(person)
{
    return;
}

Ошибки компилятора:

line 21: warning: dubious tag declaration: struct student
line 223: argument #1 is incompatible with prototype: