在 C 和 C++ 中创建点数组
Posted
技术标签:
【中文标题】在 C 和 C++ 中创建点数组【英文标题】:Creating array of points in C and C++ 【发布时间】:2017-04-05 13:48:14 【问题描述】:有不同的方法可以达到相同的目的,但这基本上是我想要做的:
typedef struct point_t
unsigned int x;
unsigned int y
point_t;
point_t points[64] = 23, 67, 123, 9, 55, 0 ...
我只想创建一个 xy 坐标的常量数组并像这样读取它们:
i = points[0].x
j = points[0].y
这在 C 和 C++ 中有效吗?
【问题讨论】:
你试过编译吗? 你真的需要编译为 C 和 C++的代码吗? 不确定是否适用,但如果您打算进行繁重的计算,您可能需要考虑使用structures of arrays。 【参考方案1】:声明结构时出现语法错误,unsigned int y
后面缺少分号,无论如何,检查它是否有效的最佳方法是使用 c/c++ 编译器,例如,尝试编译并运行这个:
#include <math.h>
#include <stdio.h>
typedef struct point_t
unsigned int x;
unsigned int y;
point_t;
int main(int argc, char *argv[])
point_t points[64] = 23, 67, 123, 9, 55, 0;
for (int i = 0; i < 64; i++)
printf("%d %d\n", points[i].x, points[i].y);
你应该看到你是如何填充前 3 个点的,其余的结构数组将被 0 填充。
【讨论】:
printf("%d %d\n", points[i]);
无法使用printf("%d %d\n", points[i].x, points[i].y);
@kaldoran 它正在使用 vs2015 编译器,无论如何,正在编辑以上是关于在 C 和 C++ 中创建点数组的主要内容,如果未能解决你的问题,请参考以下文章