首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套结构定义

嵌套结构定义
EN

Stack Overflow用户
提问于 2011-05-04 04:45:32
回答 2查看 2.6K关注 0票数 0

我正在处理计算机体系结构课程的模拟学习。我尝试用MSYS1.1/MinGW编译包,用的是gcc v4.5.2。

Makelog:

代码语言:javascript
复制
    In file included from
    sim-outorder.c:107:0: bpred.h:214:5:
    error: expected specifier-qualifier-list before 'uint'
    ... 
    make: *** [sim-outorder.o] Error 1

我检查了bpred.h中的第214行,有一个嵌套的结构定义为:

代码语言:javascript
复制
208 /* branch predictor update information */ 
209 struct bpred_update { 
210 char *pdir1;         /* direction-1 predictor counter */ 
211 char *pdir2;         /* direction-2 predictor counter */ 
212 char *pmeta;  /* meta predictor counter */ 
213 struct dir{             /* predicted directions */ 
214  uint bimod  : 1;    /* bimodal predictor */ 
215  uint twolev : 1;    /* 2-level predictor */ 
216  uint meta   : 1;    /* meta predictor (0..bimod / 1..2lev) */ 
217 } dir; 
218 };

这个结构块有什么问题?你能帮帮忙吗?谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-05-04 04:55:06

我认为不允许您命名内部结构:

代码语言:javascript
复制
208 /* branch predictor update information */ 
209 struct bpred_update { 
210 char *pdir1;         /* direction-1 predictor counter */ 
211 char *pdir2;         /* direction-2 predictor counter */ 
212 char *pmeta;  /* meta predictor counter */ 
213 struct     {             /* predicted directions */  
/******    ^^^^ --- NO NAME HERE -- THIS IS WHAT YOU MUST CHANGE */
214  uint bimod  : 1;    /* bimodal predictor */ 
215  uint twolev : 1;    /* 2-level predictor */ 
216  uint meta   : 1;    /* meta predictor (0..bimod / 1..2lev) */ 
217 } dir; 
218 };

我怀疑这是因为“说明符-限定符-列表”听起来像是一个令牌,它是struct dim = {0};之类的东西的一部分。

票数 3
EN

Stack Overflow用户

发布于 2011-05-04 05:06:05

在C中,内部结构不允许有名字,这是因为你需要在C中正常引用结构:

代码语言:javascript
复制
struct A {
   ...
};

struct B {
    struct A my_a;
};

因此,对于一个朴素的C编译器来说,不清楚它是否应该是一个变量,或者是一个类型声明。

然而,在这种情况下,由于c++不需要变量减速的结构前缀,所以使用C++编译器可以像您期望的那样工作。

解决方案是从内部结构中删除该名称,或者在其他结构外部声明该名称。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5875503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档