加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 数组初始化中的未知错误:非整数类型`const unsigned char

发布时间:2020-12-16 10:16:16 所属栏目:百科 来源:网络整理
导读:我试图制作一个Intel 8080 CPU仿真器(然后我想仿效使用它的Space Invaders). 我编写了几乎完整的CPU实现(感谢MAME和Tickle项目(主要是);))除了无记录指令(0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x0CB,0x0D9,0x0DD,0x0ED,0x0FD). 编译时我只有问题,我不知道为
我试图制作一个Intel 8080 CPU仿真器(然后我想仿效使用它的Space Invaders).

我编写了几乎完整的CPU实现(感谢MAME和Tickle项目(主要是);))除了无记录指令(0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x0CB,0x0D9,0x0DD,0x0ED,0x0FD).

编译时我只有问题,我不知道为什么.

这是代码:

static const unsigned char cycles_table[256] =
{
    /*                       8080's Cycles Table                         */
    /*     0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F */
    /*0*/  4,10,7,5,4,/*1*/  0,/*2*/  0,16,/*3*/  0,13,/*4*/  5,/*5*/  5,/*6*/  5,/*7*/  7,/*8*/  4,/*9*/  4,/*A*/  4,/*B*/  4,/*C*/  5,11,17,/*D*/  5,/*E*/  5,18,/*F*/  5,11
};

g带我这个错误:

8080.h:521: error: invalid in-class initialization of static data member of non- integral type `const unsigned char[256]’

这个数组在一个名为i8080的类中.

解决方法

就像它说的那样,你不能在类定义中初始化静态非整数类型.也就是说,你可以这样做:

static const unsigned value = 123;
static const bool value_again = true;

但不是别的.

你应该做的是把它放在你的类定义中:

static const unsigned char cycles_table[256];

在相应的源文件中,放置您拥有的内容:

const unsigned char i8080::cycles_table[256] = // ...

这是做什么的(在定义中),“嘿,这将是这个阵列.”在源文件中,这是那个数组.”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读