sccz80:"../lib/main.c" L:16 Warning:#14:Expected ',' sccz80:"../lib/main.c" L:16 Error:#28:Segmentation fault
sccz80:"../lib/main.c" L:16 Warning:#14:Expected ',' sccz80:"../lib/main.c" L:16 Error:#28:Segmentation fault
我在编译以下代码时遇到以下错误:
sccz80:"../lib/main.c" L:16 Warning:#14:Expected ','
sccz80:"../lib/main.c" L:16 Error:#28:Segmentation fault
/*
* A test game of Pong using the Z88dk
*/
#include <spectrum.h>
#include <graphics.h>
#include <sprites/sp1.h>
#include <stdio.h>
struct Bat {
int x;
int y;
int w;
int h;
};
void clear_screen(Bat* bat)
{
undrawb(bat.x, bat.y, bat.w, bat.h);
}
int main()
{
struct Bat bat;
bat.x = 0;
bat.y = 0;
bat.w = 8;
bat.h = 24;
while(1)
{
zx_border(INK_GREEN);
clear_screen(&bat);
drawb(bat.x, bat.y, bat.w, bat.h);
}
return 0;
}
对可能出现的问题有什么建议吗?我正在使用 z88dk 创建一个测试 ZX Spectrum 程序。不幸的是,我没有足够高的分数来添加 'z88dk' 标签。对此表示歉意。
您的程序中有 2 个错误:
void clear_screen(Bat* bat)
{
undrawb(bat.x, bat.y, bat.w, bat.h);
}
您的代码中没有定义类型 Bat
。只有 struct Bat
。
那么bat
的类型就是"pointer to struct"。这意味着您无法使用 .
运算符访问结构成员,但您需要通过 ->
.
取消引用
真奇怪,你的编译器提供的错误消息不包含任何这些错误,而是提到一行(假设L:16
表示第16行)和一些与代码不匹配的原因。
我在编译以下代码时遇到以下错误:
sccz80:"../lib/main.c" L:16 Warning:#14:Expected ','
sccz80:"../lib/main.c" L:16 Error:#28:Segmentation fault
/*
* A test game of Pong using the Z88dk
*/
#include <spectrum.h>
#include <graphics.h>
#include <sprites/sp1.h>
#include <stdio.h>
struct Bat {
int x;
int y;
int w;
int h;
};
void clear_screen(Bat* bat)
{
undrawb(bat.x, bat.y, bat.w, bat.h);
}
int main()
{
struct Bat bat;
bat.x = 0;
bat.y = 0;
bat.w = 8;
bat.h = 24;
while(1)
{
zx_border(INK_GREEN);
clear_screen(&bat);
drawb(bat.x, bat.y, bat.w, bat.h);
}
return 0;
}
对可能出现的问题有什么建议吗?我正在使用 z88dk 创建一个测试 ZX Spectrum 程序。不幸的是,我没有足够高的分数来添加 'z88dk' 标签。对此表示歉意。
您的程序中有 2 个错误:
void clear_screen(Bat* bat)
{
undrawb(bat.x, bat.y, bat.w, bat.h);
}
您的代码中没有定义类型 Bat
。只有 struct Bat
。
那么bat
的类型就是"pointer to struct"。这意味着您无法使用 .
运算符访问结构成员,但您需要通过 ->
.
真奇怪,你的编译器提供的错误消息不包含任何这些错误,而是提到一行(假设L:16
表示第16行)和一些与代码不匹配的原因。