求助,环形缓冲区写程序编译时总是报错
新手,打算自己做一个WIFI时钟,一边实战一边学习。
写了一个环形缓冲区的框架,但是编译总是报错,已定位到问题点,但是没想明白报错原因 ,求助各位大佬。
报错信息如下:
Rebuild started: Project: wifi clock
Rebuild target 'Target 1'
compiling main.c...
user\wifi.h(20): error C141: syntax error near ')', expected '<id>'
compiling config.c...
compiling wifi.c...
user\wifi.h(20): error C141: syntax error near ')', expected '<id>'
user\wifi.c(72): error C141: syntax error near ')', expected '<id>'
user\wifi.c(81): error C141: syntax error near 'data', expected 'sizeof'
Target not created.
Build Time Elapsed:00:00:00
目前已定位到问题点,问题就出在wifi.c 和wifi.h 中的以下程序和声明:
bit RingBuffer_Write(RingBuffer *rb, unsigned char data);
/**
* @brief 向环形缓冲区写入一个字节
* @param rb: 指向环形缓冲区结构体
* @param data: 要写入的字节数据
* @return 1-写入成功,0-缓冲区满写入失败
*/
bit RingBuffer_Write(RingBuffer *rb, unsigned char data)
{
// 缓冲区满则返回失败
if(RingBuffer_Full(rb))
{
return 0;
}
// 写入数据到tail位置
rb->buffer = data;
// tail指针循环(达到缓冲区大小则归0)
rb->tail = (rb->tail + 1) % BUFFER_SIZE;
// 有效数据计数+1
rb->count++;
return 1;
}
到底为什么报错,求指点
data是个类型,不能作为变量名,建议把data 改为dat lcwswust 发表于 2026-3-22 10:10
data是个类型,不能作为变量名,建议把data 改为dat
{:baoquan:}谢谢这位朋友,一针见血,问题已解决。我自己排查了半天,用豆包也没找到原因,自身知识还是太欠缺了 还有xdata也是类型 狂热主宰 发表于 2026-3-22 17:00
还有xdata也是类型
感谢指点,环形缓冲区因为要定义大数组,xdata确实也涉及到了,不指定位置会报错{:baoquan:}
页:
[1]