C 已定义结构,但编译器声称它不是';T
我已经开始学习C语言。我想学习如何使用ncurses库,并找到了一个“教程”,它更多的是一个示例类型的说明 在本教程中,有一个包含以下代码的结构定义:C 已定义结构,但编译器声称它不是';T,c,struct,ncurses,C,Struct,Ncurses,我已经开始学习C语言。我想学习如何使用ncurses库,并找到了一个“教程”,它更多的是一个示例类型的说明 在本教程中,有一个包含以下代码的结构定义: typedef struct Snakepart { int x; int y; } Snakeypart; Snakeypart snakey[SNAKEY_LENGTH]; 然后,当我尝试编译时,出现以下错误: snake.c:47:9: error: member reference base
typedef struct Snakepart {
int x;
int y;
} Snakeypart;
Snakeypart snakey[SNAKEY_LENGTH];
然后,当我尝试编译时,出现以下错误:
snake.c:47:9: error: member reference base type 'Snakeypart [40]' is not a
structure or union
指的是这一行代码:
snakey.x = sbegx + i;
前面在main()中使用以下代码定义了变量snakey:
typedef struct Snakepart {
int x;
int y;
} Snakeypart;
Snakeypart snakey[SNAKEY_LENGTH];
我不明白为什么在定义了结构之后会出现错误。我对C语言编程相当陌生,但我理解一些超出我编写代码能力范围的概念,所以如果必要的话,不要害怕掌握一些技术知识。谢谢。您需要调用数组中的元素 例如:
snakey[0].x = sbegx + i;
使用snakey[snakey_LENGTH]创建snakey时代码>,您的程序将创建一个SNAKEY_长度结构数组。
您可以使用snakey[j]
访问阵列中的第j个结构
snakey[n].x = sbegx + i;
--这可能是:n是int
因为。。snakey是一个数组 您尝试过typedef结构{/*…*/}Snakeypart吗?snakey
被定义为数组,而不是Snakeypart
。。。您需要类似于snakey[0].x的内容。是的,谢谢,我看得太仔细了,为了让它更明显,条目应该是snakey[I].x,因为它在for循环中。是的,谢谢。看来我看得太重了。