2017-04-05 57 views
-1

有不同的方法来达到同样的目的,但是这基本上就是我想要做的事:创建用C点的阵列和C++

typedef struct point_t { 
    unsigned int x; 
    unsigned int y 
} point_t; 

point_t points[64] = { {23, 67}, {123, 9}, {55, 0} ... }

我只是想创建一个常数然后像这样读取它们:

i = points[0].x 
j = points[0].y 

这是否适用于C和C++?

+6

你试过实际编译它吗? –

+6

你真的需要编译为C *和* C++的代码吗? – crashmstr

+0

不确定是否适用,但如果您打算进行繁重的计算,您可能需要考虑[数组结构](https://en.wikipedia.org/wiki/AOS_and_SOA)。 – pingul

回答

-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被填满。

+1

'printf(“%d%d \ n”,points [i]);'不会使用'printf(“%d%d \ n”,points [i] .x,points [i] .y) ;' – kaldoran

+0

@kaldoran它正在使用vs2015编译器,无论如何,编辑 – BPL