首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未知的类型名称'sll‘。关于结构的问题

未知的类型名称'sll‘。关于结构的问题
EN

Stack Overflow用户
提问于 2017-01-20 01:36:17
回答 1查看 490关注 0票数 0

我是C的新手,我的结构被列为未知类型时遇到了问题。我不能更改方法签名,因为它们是由我的教授编写的,他将从外部代码链接到它们。

代码语言:javascript
复制
sll.c:6:1: error: unknown type name 'sll'
sll *newSLL(void (*d)(FILE *, void*)) { 
in function 'newSLL';

编辑:添加实际错误

头文件:

代码语言:javascript
复制
#ifndef __SLL_INCLUDED__
#define __SLL_INCLUDED__

typedef struct sllnode {
    void *value;
    struct sllnode *next;
} sllnode;

typedef struct sll {
    sllnode *head;
    sllnode *tail;
    int size;
    void (*display)(FILE *,void *);
} sll;

extern sll *newSLL(void (*d)(FILE *,void *)); 

C文件:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>

struct sllnode {
    void *value;
    struct sllnode *next;
} *sllnode;

struct sll {
    struct sllnode *head;
    struct sllnode *tail;
    int size;
    void (*display)(FILE *,void *);
} *sll;

sll *newSLL(void (*d)(FILE *,void *)) {
    struct sll *items = malloc(sizeof(sll));
    if (items == 0){
        fprintf(stderr,"out of memory");
        exit(-1);
    }

    items->head = 0;
    items->tail = 0;
    items->size = 0;
    items->display = d;
    return items;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-20 01:53:31

您的C文件从未包含过头文件,因此没有定义类型ssl

您需要在C文件的顶部包含您的头文件。然后,您需要从C文件中删除struct定义,因为它们已经在头文件中定义。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41748214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档