最近我开始用 C/C++ 编程,但我发现有些东西有点难以理解。例如,我的 vertices.h 文件:
#ifndef _vertices_h
#define _vertices_h
typedef struct
{
float XYZW[4];
float RGBA[4];
} Vertex;
extern Vertex Vertices[];
extern GLubyte Indices[];
#endif
还有我的 vertices.c 文件:
#include "vertices.h"
Vertex Vertices[] =
{
{ { 0.0f, 0.0f, 0.0f, 1.0f }, { 1.0f, 1.0f, 1.0f, 1.0f } }
};
GLubyte Indices[] = {
0, 1, 3,
0, 3, 2,
3, 1, 4,
3, 4, 2
};
不,我需要在其他 .h 文件中创建一个将使用我的 Vertices 数组的函数。这是 shader.c 文件:
#include "vertices.h"
void CreateVBO(){ #############################################1
// some operations that uses the passed Vertices array
}
和我的“shaders.h”文件:
#ifndef _shaders_h
#define _shaders_h
void CreateVBO(); #############################################################2
#endif
现在我的问题是,在我的主函数中,我调用函数 CreateVBO,并且我想将我需要的顶点数组传递给它。就我而言,我只声明了 1,但我想声明更多并传入我想要的。所以基本上,我真的不知道如何声明函数 CreateVBO 的参数。我缺少的行是用#### 签名的。
void doSemthing(int argc, char* argv[]){
...
CreateVBO(); #############################################################3
}