Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在尝试使用.c文件头中的结构时出现类型错误?_C_Struct - Fatal编程技术网

为什么在尝试使用.c文件头中的结构时出现类型错误?

为什么在尝试使用.c文件头中的结构时出现类型错误?,c,struct,C,Struct,我真的不明白这里发生了什么。我试图访问.c文件中结构的成员,但当我试图访问结构变量时,它给出了一个“错误类型”。有人知道这是怎么回事吗 CPU.h头文件: 以下是使用clang编译时出现的错误: CPU.c:4:1: error: unknown type name 'regs' regs.af = 0xFFFF; ^ CPU.c:4:5: error: expected identifier or '(' regs.af = 0xFFFF; ^ 2 errors generated.

我真的不明白这里发生了什么。我试图访问.c文件中结构的成员,但当我试图访问结构变量时,它给出了一个“错误类型”。有人知道这是怎么回事吗

CPU.h头文件: 以下是使用clang编译时出现的错误:

CPU.c:4:1: error: unknown type name 'regs'
regs.af = 0xFFFF;
^
CPU.c:4:5: error: expected identifier or '('
regs.af = 0xFFFF;
    ^
2 errors generated.

您可以在函数之外声明和初始化全局变量,但不能对它们执行任何其他操作

所以,你可以这样做:

cpu_registers regs = { .af = 0xFFFF };
但是,请注意,这将不起作用:

int val = 0xFFFF;
cpu_registers regs = { .af = val };
而且——也许有点令人惊讶——也不是这样:

const int val = 0xFFFF;
cpu_registers regs = { .af = val };

您可以在函数之外声明和初始化全局变量,但不能对它们执行任何其他操作

所以,你可以这样做:

cpu_registers regs = { .af = 0xFFFF };
但是,请注意,这将不起作用:

int val = 0xFFFF;
cpu_registers regs = { .af = val };
而且——也许有点令人惊讶——也不是这样:

const int val = 0xFFFF;
cpu_registers regs = { .af = val };

“悬停在上面”是什么意思?
regs.af=0xFFFF在文件范围内无效,因为不能在函数之外有语句。发布的代码缺少
main()
函数。强烈建议添加
main()
函数,然后移动以下行:
cpu\u regs;regs.af=0xFFFF
main()
函数中“悬停”是什么意思?
regs.af=0xFFFF在文件范围内无效,因为不能在函数之外有语句。发布的代码缺少
main()
函数。强烈建议添加
main()
函数,然后移动以下行:
cpu\u regs;regs.af=0xFFFF
main()函数中