我知道如何用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
答案 0 :(得分:4)
您无法在此类文件范围内调用函数。您需要将调用移动到一个函数中(例如main
)。
答案 1 :(得分:0)
您不能在另一个功能的声明之外使用某个功能。顺便说一句,你可以将变量声明为全局变量但行
vector_init(×);
必须写在main函数内部。
如果您对gcc的错误消息感兴趣,那是因为他试图找到新函数的声明,这是一个类型的名称或者......而是。