在 C 中声明数组时获得"error: expected ']' before ';' token"



我正在编写一个生产者-消费者解决方案,但我不断得到"错误:在";"之前应为"]"令牌";当声明";buffer_item buffer[buffer_SIZE]&";。我不太确定该怎么办?

这是我的缓冲区.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
....

最新更新