不允许在C51中定义包含数组的结构?

不允许在C51中定义包含数组的结构?,c,arrays,struct,c51,C,Arrays,Struct,C51,不允许在C51中包含数组的结构?在我的C51程序中定义了一个简单的结构之后 struct RingBuffer { int zero; int size; int capacity; char data[10]; }; 我收到错误:。\SOURCE\MYRINGBUFFER.H(25):错误C141:靠近“[”的语法错误。很明显,错误在结构中定义了字符数组的行上(注释后没有错误) 我在这里做错了什么吗?如果不是的话,我有没有办法实现我的目标 编辑:所有代码

不允许在C51中包含数组的结构?在我的C51程序中定义了一个简单的结构之后

struct RingBuffer 
{
    int zero;
    int size;
    int capacity;
    char data[10]; 
}; 
我收到错误:
。\SOURCE\MYRINGBUFFER.H(25):错误C141:靠近“[”
的语法错误。很明显,错误在结构中定义了字符数组的行上(注释后没有错误)

我在这里做错了什么吗?如果不是的话,我有没有办法实现我的目标

编辑:所有代码

#ifndef __MY_RING_BUFFER_H__
#define __MY_RING_BUFFER_H__
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct RingBuffer 
{
    int zero;
    int size;
    int capacity;
    char data[10]; 
};


#endif
\ifndef\u我的\u环\u缓冲区\u H__
#定义我的环缓冲区__
#包括
#包括
#包括
结构环缓冲区
{
整数零;
整数大小;
国际能力;
字符数据[10];
};
#恩迪夫

我找出了错误。数据是C51中的一个关键字。

我找出了错误。数据是C51中的一个关键字。

缓冲区大小是如何定义的?如果编译器不够聪明,那么
+
可能会让它认为大小是一个动态值。@MOehm,我怀疑,但它不会rk。事实上,整个代码只在顶部包含了一些include和this。我不知道为什么这个问题会被投票否决,甚至被否决。它为这个网站上C51编译器的用户增加了洞察力,从而增加了价值。OP问题清晰、简洁地展示了一些先前调试和研究的证据。Altho呃,我最初评论说OP的答案应该是一个注释,现在我看到,虽然它很短,但它是一个很好的答案。再次简洁明了。
BUFFER\u SIZE
是如何定义的?如果编译器不够聪明,那么
+
可能会让它认为大小是一个动态值。@MOehm,我怀疑,但它不起作用。在事实上,整个代码只在顶部包含了一些include和this。我不知道为什么这个问题会被投票否决,甚至被否决。它为这个站点上C51编译器的用户增加了洞察力,从而增加了价值。OP问题清楚而简洁地呈现了一些先前调试和研究的证据。尽管我最初评论说OP的答案应该是一个评论,现在我看到,虽然它很短,但它是一个很好的答案。再次简洁明了。@Ryker:绝对不是作为原始帖子中的编辑。那时它将不再是一个问题。@Jongware-是的,我现在看到了。事实上,这是一个与什么也是一个好答案完全相关的答案问题。谢谢。@Ryker:肯定不是作为原始帖子中的编辑。这将不再是一个问题。@Jongware-是的,我现在明白了。事实上,这是一个非常相关的答案,也是一个好问题。谢谢。