Gab*_*zar 1 c struct pointers header-files
作为一个简单的初学者项目,我正在尝试构建一个链表。我为节点创建了一个结构 typedef。我的问题是我想要另一个 typedef 作为指向列表节点的指针,出于某种原因,这不起作用,我很困惑。我在这里阅读了其他答案,但没有一个有效。
主文件
#include <stdio.h>
#include "linkedList.h"
int main(int argc, char **argv){
return 0;
}
Run Code Online (Sandbox Code Playgroud)
链表.h
#ifndef linkedList
#define linkedList
typedef struct listStrNode {
char *string;
struct listStrNode *next;
} listStringNode;
typedef listStringNode *linkedList;
#endif
Run Code Online (Sandbox Code Playgroud)
错误
In file included from main.c:3:
linkedList.h:9:35: error: expected identifier or ‘(’ before ‘;’ token
9 | typedef listStringNode *linkedList;
|
Run Code Online (Sandbox Code Playgroud)
编译:
gcc main.c
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
#define linkedList
Run Code Online (Sandbox Code Playgroud)
这将用linkedList空字符串替换所有实例。这实际上意味着typedef listStringNode *linkedList;成为typedef listStringNode *;错误。要修复,请重命名#define或 类型名称。一个常见的约定是使用文件名的表示作为包含保护:例如#define LINKEDLIST_H