有一个头文件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;
...
}
Run Code Online (Sandbox Code Playgroud)
我对语句中的"*userData"感到困惑:UserData*userData = esContext-> userData;
如果它是一个指针,它是如何在没有被声明的情况下产生的.谢谢你的任何解释.
是的,它是一个指针.这条线
UserData *userData = esContext->userData;
Run Code Online (Sandbox Code Playgroud)
声明一个名为userDatawith type UserData *(指向UserData)的变量,并用值初始化它esContext->userData.