Lỗi Unknown typename 'struct'

Em dùng VSCode,
ở dưới là struct em đã khai báo trong file header.h, khi gọi lại struct trong 1 file header1.h thì khi biên dịch báo lỗi <unknown type name ‘NotReader’>
ps: em đã include đầy đủ các file .h rồi ạ.

Mong các bác giúp đỡ

// file header.h
struct NotReader {
    Login *login;
    char name[30];
    int id;
    char address[50];
    int sex;
    NotReader *pNext;
};


// file header1.h
struct ListNotReader {
    NotReader *pHead;
    NotReader *pTail;
};

Cái này bạn dùng sai cú pháp khi gọi một struct rồi (thiếu từ khóa struct)

phải là:

// file header.h
struct NotReader {
    struct Login *login;
    char name[30];
    int id;
    char address[50];
    int sex;
    struct NotReader *pNext;
};


// file header1.h
struct ListNotReader {
    struct NotReader *pHead;
    struct NotReader *pTail;
};

Hoặc bạn có thể gọi như vậy nhưng khi khai báo struct bạn phải thêm từ khóa typedef như sau:

// file header.h
typedef struct NotReader {
    char *login;
    char name[30];
    int id;
    char address[50];
    int sex;
    struct NotReader *pNext;
} notReader;

// file header1.h
typedef struct ListNotReader {
    notReader *pHead;
    notReader *pTail;
}listNotReader;
1 Like

Mình đã sửa theo cách của bạn nhưng cách 2 thì gặp lỗi y chóc như vậy còn cách 1 thì gặp lỗi mới là <field has incomplete type ‘struct NotReader’>. Liệu còn lỗi nào khác không nhỉ

Bạn up lại code mới mình xem thử, code mình trả lời đã test rồi.

https://repl.it/repls/QuixoticActiveConference

1 Like

https://studenthcmusedu-my.sharepoint.com/:f:/g/personal/18120201_student_hcmus_edu_vn/Evb-6Od2EuNFmEh9DgTjhZIBRGH0wfZuPAycf2KnD6xvRQ?e=60XWRi

Bạn coi giúp mình với nha. File ListNotReader.h bị báo lỗi ở dòng 7 nếu mình nhớ k nhầm. 2 file chứa code mà mình nhờ bạn đọc hôm bữa là file NotReader.h và ListNotReader.h nha. Cảm ơn bạn nhiều

Bạn kiểm tra lại code đi nhé,trong code mình thấy bạn đã sửa như mình nói đâu.
Tất cả những chỗ nào khai báo biến kiểu struct bạn đều thêm từ khóa struct ở trước nhé.

Ý là mình sửa rồi xong biên dịch vẫn lỗi nên mới gửi code cũ :((

  • Code cũ của bạn sai mình đã chỉ ra rồi, bạn gửi lại cho mình làm gì nữa ^^. Mình cũng thấy lạ là bạn làm không được nên muốn xem bạn đã sửa lại thế nào.
  • Ở trên rogp10 đã đưa link code rồi mà, bạn vào link đó nhấn Run xem có lỗi không nhé :slight_smile:
    https://repl.it/repls/MagnificentLeadingGoal
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?