typedef struct s_coord
{
int ax;
int ay;
int bx;
int by;
int cx;
int cy;
int dx;
int dy;
} t_coord;
typedef struct s_piece
{
t_coord piece[6];
} t_piece;我想知道这是不是创建一个包含7个结构的表的正确方式?
我怎样才能设置斧头,等等。每一张表?
附言:制作俄罗斯方块。
发布于 2011-11-05 07:36:33
这是定义由6个t_coord结构组成的表的数据结构的常规方法。(如果需要其中的7个,请将[6]更改为[7]。)
您也可以定义typedef t_coord[6] a_piece;。但这有时会导致令人惊讶的行为,因为数组的行为是特殊的。例如,给定a_piece a1, a2;,您不能编写赋值a1 = a2;,而可以赋值结构(t_piece t1, t2; … t1 = t2;)。在许多情况下,数组会衰减为指针,特别是您不能从函数传递或返回数组(尽管考虑到数据结构的大小,您通常都会传递指针)。对于应该保持不透明的类型,首选结构的另一个原因是它们提供了更强的类型:如果您无意中尝试将t_piece赋值给其他类型,编译器会报错,而编译器会很乐意地让您将a_piece赋值给t_coord* (但实际上,您将得到的是指向数据的指针,而不是数据的副本)。
发布于 2017-02-07 07:40:51
如果你想要7个,你需要
typedef struct s_piece
{
t_coord piece[7];
} t_piece;它们被引用为piece[6]的piece[0] (计算机的数字从0开始)
https://stackoverflow.com/questions/8016836
复制相似问题