Passando struct para funcionar

Eu sou um novo programador C e eu queria saber como eu posso passar umstruct através de uma função. Estou recebendo um erro e não consigo descobrir a sintaxe correta para isso. Aqui está o código para isso ....

Struct:

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

struct student person;

Ligar:

addStudent(person);

Protótipo:

void addStudent(struct student);

e a função real:

void addStudent(person)
{
    return;
}

Erros do compilador:

linha 21: aviso: declaração de tag duvidosa: struct student
linha 223: o argumento # 1 é incompatível com o protótipo: