首页
学习
活动
专区
圈层
工具
发布

结构表
EN

Stack Overflow用户
提问于 2011-11-05 07:20:08
回答 2查看 2.5K关注 0票数 2
代码语言:javascript
复制
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个结构的表的正确方式?

我怎样才能设置斧头,等等。每一张表?

附言:制作俄罗斯方块。

EN

回答 2

Stack Overflow用户

发布于 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* (但实际上,您将得到的是指向数据的指针,而不是数据的副本)。

票数 1
EN

Stack Overflow用户

发布于 2017-02-07 07:40:51

如果你想要7个,你需要

代码语言:javascript
复制
typedef struct s_piece
{
    t_coord piece[7];
} t_piece;

它们被引用为piece[6]piece[0] (计算机的数字从0开始)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8016836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档