有一个头文件 esUtil.h,其中定义了一个名为 ESContext 的结构,其成员之一是 userData。 userData 是指向 void 的指针。
使用它的程序主体是这样的,简单地说:
#include "esUtil.h"
typedef struct {
GLuint programObject;
} UserData;
int DoSomething(ESContext *esContext) {
UserData *userData = esContext->userData;
...
}
int main(int argc, char *argv[]) {
ESContext esContext;
UserData userData;
esStart(&esContext);
esContext.userData = &userData;
...
if(!DoSomething(&esContext))
return 0;
...
}
我对语句中“*userData”的含义感到困惑:UserData *userData = esContext->userData;
而如果是一个指针,它是如何在没有被声明的情况下产生的。感谢您的任何解释。
最佳答案
是的,它是一个指针。线路
UserData *userData = esContext->userData;
声明一个名为 userData
的变量,类型为 UserData *
(指向 UserData
的指针)并用值 esContext- 初始化它>用户数据
。
关于c++ - 这是一个指针吗? (如果是这样,它是如何初始化的?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9815801/