我在修计算机结构课程的sim。我尝试用MSYS1.1/MinGW和gcc v4.5.2编译包。
制作日志:

    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行,有一个嵌套结构定义为:
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 };

这个结构块怎么了?
你能帮忙吗??
谢谢!

最佳答案

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

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};之类的东西的一部分。

关于c - 嵌套结构定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5875503/

10-11 22:13
查看更多