struct 的此错误消息是什么意思?

时间:2021-06-20 14:15:47

标签: c struct registration

我试着做一个小的注册程序,把它分成一个标题,一个包含注册函数定义和主代码的源代码。

但是,我收到此错误消息: error: expected expression before 'struct'.

我做错了什么?请帮助我是初学者。这是我的主要代码。

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

int main()
{
   int choice;
   puts("Press 1 to register");
   scanf("%d", &choice);

   if(choice==1){
       registerUser(struct generalUser user);
}
}

这是我的标题代码。

struct generalUser{
    char fName[15];
    char lName[20];
    int id;
    int bDay;
    int bMonth;
    int bYear;
};

struct generalUser user;

void registerUser(struct generalUser user);

这是我定义函数的代码。

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

void registerUser(struct generalUser user){
    srand(time(NULL));

    puts("Insert name");
    scanf("%s", user.fName);

    puts("Insert last name");
    scanf("%s", user.lName);

    user.id=1 + rand()%9999;
    printf("You ID code is %d", &user.id);

    printf("Insert date of birth in the following format: dd/mm/yy");
    scanf("%d/%d/%d", &user.bDay, &user.bMonth, &user.bYear);


    printf("%s %s, id %d, %d/%d/%d", user.fName, user.lName, user.id, user.bDay, user.bMonth, user.bYear);
}

1 个答案:

答案 0 :(得分:0)

您的源代码中有两个错误:

  1. printf("You ID code is %d", &user.id); : 请删除 & 因为您打印的是它的值而不是 ref
  2. 在主 registerUser(struct generalUser user); 中,请删除 struct generalUser。您正在调用一个已将用户声明为全局的函数。