Я знаю, как кодировать с помощью 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(×);
int main{
....}
и, наконец, ошибка:
Ser.c:135:13: error: expected declaration specifiers or ‘... before ‘& token
Вы не можете вызвать функцию в такой области. Вам нужно перевести вызов в функцию (например, main
).
Вы не можете использовать функцию вне объявления другой функции. Btw вы можете объявлять переменные как глобальные переменные, но строку vector_init(×);
должны быть записаны внутри основной функции. Если вам интересно сообщение об ошибке gcc из-за того, что он пытается найти объявление новой функции, это имя типа или... вместо этого.
vector_init
является встроенной функцией?