访问结构有问题

Posted

技术标签:

【中文标题】访问结构有问题【英文标题】:Having problems with accessing struct 【发布时间】:2014-04-14 07:12:41 【问题描述】:

我想我可能会失去它,但任何人都可以仔细检查我的理智吗?这是我在新文件中编写的唯一代码,以查看我的项目文件没有搞砸。

错误:此声明没有存储类或类型说明符

错误:应为“;”

【问题讨论】:

在函数之外不能有表达式(例如g.a = 1;)。 同时删除前面的typedef和结构声明的右大括号后的Game @juanchopanza 等等,为什么不呢? 语言规则。 @juanchopanza 这实际上修复了它哈哈 【参考方案1】:

在全局级别上,您只能有声明和定义,而不是语句(如g.a = 1; is)或表达式。

【讨论】:

【参考方案2】:

另外为什么不使用静态初始化呢?

Game g =  1 ;

【讨论】:

【参考方案3】:

有一些函数有可执行的语句,例如,

Game Init() 
    Game result;
    result.a = 1; // g is global
    return result;


Game g = Init();

最好有一个名为 Game 的类并让构造函数进行初始化。

class Game 
  int a;
  public:  
  Game(int a_):a(a_)
;

Game g(1);

【讨论】:

好的,假设我正在使用 C 并希望公开声明。有没有办法我可以实现它?我知道这听起来可能很愚蠢,因为你会说根本不使用结构......另外,请记住我不知道 a 的数据类型。 在 C 中,结构中的所有内容都是公共的,没有私有数据成员的概念,但是,要初始化您需要知道数据类型 Game g = 1;也会这样做

以上是关于访问结构有问题的主要内容,如果未能解决你的问题,请参考以下文章

C# PInvoke 结构与类访问冲突

如何访问和存储向量类型的结构成员?

访问结构元素。是不是可以像矢量一样访问?

其实C语言就是三种结构吧?顺序结构、选择结构、循环结构?

malloc 与结构以及如何访问结构的 malloc 的内存

在结构的计算属性中访问环境对象属性