在C程序中创建我自己的std::vector

Creating my own std::vector in C program

本文关键字:自己的 std 我自己 vector 创建 程序      更新时间:2023-10-16

我知道如何使用C++进行编码,但这是我第一次尝试使用C.

我甚至试图定义一个cVector.h和cVector.c来实现std::vector的一些功能。但当我编译代码时,我会收到以下错误。

这里是相同的代码:

cVector.h

#define VECTOR_INITIAL_CAPACITY 520
typedef struct {
  int size;      // slots used so far
  int capacity;  // total available slots
  int *data;     // array of integers we're storing
} Vector;
void vector_init( Vector *vector);

cVector.c

#include "cVector.h"
#include <stdio.h>
#include <stdlib.h>
void vector_init(Vector *vector) {
  // initialize size and capacity
  vector->size = 0;
  vector->capacity = VECTOR_INITIAL_CAPACITY;
  // allocate memory for vector->data
  vector->data = malloc(sizeof(int) * vector->capacity);
}

用法如下:

#include "cVector.h" 
Vector times; 
vector_init(&times);
int main{
....}

最后错误:

Ser.c:135:13: error: expected declaration specifiers or ‘...’ before ‘&’ token

不能在这样的文件范围内调用函数。您需要将调用移动到一个函数中(例如main)。

不能在另一个函数的声明之外使用函数。顺便说一句,你可以将变量声明为全局变量,但vector_init(&times);必须写在主函数内部。如果你对gcc的错误消息感兴趣,那是因为他试图找到一个新函数的声明,也就是类型的名称或。。。相反