gpt4 book ai didi

c - 尝试用 C 语言编译一个简单的文件

转载 作者:行者123 更新时间:2023-11-30 17:27:18 24 4
gpt4 key购买 nike

我写信给你是因为我用 C 语言编写了以下文件源,但无法使用 gcc 对其进行编译...我收到错误 unknow type name :(我在互联网上搜索过,但大多数情况下,当存在循环依赖或类似的情况时,就会出现这种情况。

所以我有一个源文件和一个头文件:

vector .h:

#ifndef VECTOR_H
#define VECTOR_H

#include <stdio.h>

typedef struct dynamic_array_struct
{
uint64_t *data;
size_t capacity;
size_t size;
} vector;

int
vector_init(vector *, size_t);

int
vector_reinit(vector *);

#endif /* VECTOR_H */

和 vector .c

#include <stdlib.h>
#include <vector.h>


int
vector_init(vector *v, size_t init_capacity)
{
v->data = (uint64_t *)malloc(init_capacity*sizeof(uint64_t));
v->capacity = init_capacity;
v->size = 0;
return 1;
}

int
vector_reinit(vector *v)
{
free(v->data);
v->data = (uint64_t *)malloc(v->capacity*sizeof(uint64_t));
v->size = 0;
return 1;
}

但是当我尝试使用 gcc -c vector.c -I . 编译它时,出现以下错误:

In file included from vector.c:2:0:
./vector.h:2:13: error: unknown type name ‘vector’
vector_init(vector *, size_t);
^
./vector.h:5:15: error: unknown type name ‘vector’
vector_reinit(vector *);
^
vector.c:6:13: error: unknown type name ‘vector’
vector_init(vector *v, size_t init_capacity)
^
vector.c:14:15: error: unknown type name ‘vector’
vector_reinit(vector *v)

你能告诉我我做错了什么吗?

谢谢你帮助我:)

最佳答案

您应该像这样包含 vector.h:

#include "vector.h"

不是这样的:

#include <vector.h>

关于c - 尝试用 C 语言编译一个简单的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26453179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com