2017-04-05 54 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