c - 结构表

标签 c arrays struct coordinates

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 个结构的表的正确方法?

我如何为每个表设置 ax、ay 等?

ps:制作俄罗斯方 block

最佳答案

这是定义由 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*(但实际上您将拥有一个指向数据的指针,而不是数据的副本)。

关于c - 结构表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8016836/

相关文章:

C - 释放数组内的指针

c++ - 使用 unordered_set 时结构中嵌套结构的哈希函数

c - 套接字代码在 main 中工作,但在其他功能中失败

c - 返回-1时strtok消失

java - 使用 Resources.getSystem() 从 .xml 获取 Android 中的字符串数组

arrays - 数组动态时的最小查询范围

struct - 结构中的生命周期和类型说明符问题

SWIFT:将 NSData 中的字节粘贴到结构中?

c - 需要实现一个pipe,dup2函数来执行 "ls | tr a-z A-Z > file.txt"

c - FFTW计划段错误