Getting "error: expected ']' before ';' token" when declaring an array in C
Getting "error: expected ']' before ';' token" when declaring an array in C
我正在编写一个生产者-消费者解决方案,但我不断收到“错误:在‘;’之前应为‘]’” token”声明“buffer_item buffer[BUFFER_SIZE];”。我不太确定该怎么做?
这是我的 buffer.h 文件:
typedef int buffer_item;
#define BUFFER_SIZE 5;
buffer.c 文件
#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
#include "buffer.h"
buffer_item buffer[BUFFER_SIZE];
void *producer(void *param);
void *consumer(void *param);
//etc..
宏是字符串替换,所以
#define BUFFER_SIZE 5;
buffer_item buffer[BUFFER_SIZE];
会变成
buffer_item buffer[5;];
并且在元素数量之后有额外的分号。
你应该使用
#define BUFFER_SIZE 5
(没有分号)代替。
只需在定义常量时删除分号
#define BUFFER_SIZE 5
....
我正在编写一个生产者-消费者解决方案,但我不断收到“错误:在‘;’之前应为‘]’” token”声明“buffer_item buffer[BUFFER_SIZE];”。我不太确定该怎么做?
这是我的 buffer.h 文件:
typedef int buffer_item;
#define BUFFER_SIZE 5;
buffer.c 文件
#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
#include "buffer.h"
buffer_item buffer[BUFFER_SIZE];
void *producer(void *param);
void *consumer(void *param);
//etc..
宏是字符串替换,所以
#define BUFFER_SIZE 5;
buffer_item buffer[BUFFER_SIZE];
会变成
buffer_item buffer[5;];
并且在元素数量之后有额外的分号。
你应该使用
#define BUFFER_SIZE 5
(没有分号)代替。
只需在定义常量时删除分号
#define BUFFER_SIZE 5
....