一个建议,以下是在头文件中:
typedef struct{
void* userData;
} ESContext;
,在源文件中,有以下结构:
typedef struct
{
GLuint programObject;
} UserData;
所以这里。在同一个源文件中,有一个函数从这样开始:
void Draw ( ESContext *esContext )
{
UserData *userData = esContext->userData;
...
}
如果你把它读掉的话,这个最后的剪辑是如何发出声音的呢?它在做什么?谢谢你的帮助。
答案 0 :(得分:4)
它将指针esContext-> userData分配给指针userData。 C语言允许在void指针和任何其他类型的指针之间进行隐式转换。
您可能需要阅读C FAQ relating to Pointers。
部分答案 1 :(得分:0)
您应该阅读Clockwise Spiral Rule。它不仅可以帮助您理解如何将该语句放入可以很好地阅读的单词中,还可以帮助您理解其他C语句。
答案 2 :(得分:0)
userData
是指向UserData
的指针,该userData
被赋予esContext
指向的结构的UserData *userData = esContext->userData;
字段的值。
UserData *userData = (*esContext).userData;
相当于:
{{1}}