c - 查找语法错误时出现问题 - 不确定它是否与可视代码有关



我在编写的一些 C 代码上遇到了大量语法错误,我不知道为什么。我决定尝试重新创建我存储在 replit 上的项目,但它无法正常运行。我不完全确定为什么。

#ifndef HEADER_H
#define HEADER_H
// Macros
// Definitions
// Structs
typedef struct Notecard {
    char* topic;
    char* question;
    char* answer;
}Notecard;
typedef struct List {
    Notecard* list;
    int length;
    int capacity;
    void (*insert) (List* list, struct Notecard value);
}List;
typedef struct Node {
    Notecard card;
    Node* next;
}Node;
typedef struct LinkedList {
    Node* head;
    void (*append) (LinkedList* linked, Node n);
    void (*printList) (LinkedList* linked);
}LinkedList;
// Function Declarations
void insertion(List* arr, Notecard value);
void append(LinkedList linked, Node n);
void printList(LinkedList linked);

#endif // !HEADER_H

它给我的巨大列表中的第一个错误是说"void (*insert( (List* list,..ect 需要在列表*后使用分号。这是 V 的问题吗?

尚未定义List*,因为在执行行void (*insert) (List* list, struct Notecard value);时您仍在其定义范围内。因此,List* list将不起作用。

你仍然必须把struct List* list放在那里才能让它工作。

您好,我编译了您的代码,下面是它应该的样子

#ifndef HEADER_H
#define HEADER_H
// Macros
// Definitions
// Structs
typedef struct Notecard {
    char* topic;
    char* question;
    char* answer;
}Notecard;
typedef struct List {
    Notecard* list;
    int length;
    int capacity;
    void (*insert) (struct List* list, struct Notecard value);
}List;
typedef struct Node {
    Notecard card;
    struct ode* next;
}Node;
typedef struct LinkedList {
    Node* head;
    void (*append) (struct LinkedList* linked, Node n);
    void (*printList) (struct LinkedList* linked);
}LinkedList;
// Function Declarations
void insertion(List* arr, Notecard value);
void append(LinkedList linked, Node n);
void printList(LinkedList linked);

#endif // !HEADER_H

最新更新