【问题标题】:Defining struct containing array in C51 not allowed?不允许在 C51 中定义包含数组的结构?
【发布时间】:2016-01-09 18:41:25
【问题描述】:

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

struct RingBuffer 
{
    int zero;
    int size;
    int capacity;
    char data[10]; 
}; 

我收到错误:..\SOURCE\MYRINGBUFFER.H(25): error C141: syntax error near '['。很明显,错误在struct中定义的char数组的行(注释后没有错误)。

我在这里做错了吗?如果没有,无论如何我可以实现我想要做的事情吗?

编辑:所有代码。

#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

【问题讨论】:

  • BUFFER_SIZE 是如何定义的?
  • 如果编译器不够聪明,那么+ 可能会让它认为大小是一个动态值。
  • @MOehm,我怀疑这一点,但它没有用。事实上,整个代码只包含顶部和 this 的一些包含。
  • 我不知道为什么这个问题会被投票赞成,甚至反对票。它以增加洞察力的形式为该站点上的 C51 编译器用户增加了价值。 OP 问题清晰简洁地提出了一些先前调试和研究的证据。虽然我最初评论说OP的答案应该是评论,但我现在看到虽然很短,但这是一个很好的答案。再次简洁明了。

标签: c arrays struct c51


【解决方案1】:

我知道出了什么问题。 data 是 C51 中的关键字。

【讨论】:

  • @ryyker:绝对不是原帖中的编辑。那时这将不再是一个问题。
  • @Jongware - 是的,我现在明白了。事实上,对于同样是一个好问题的问题,它是一个完全相关的答案。谢谢。
猜你喜欢
  • 2018-08-18
  • 2018-05-09
  • 1970-01-01
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多