这句话是什么意思?

时间:2011-09-05 15:45:05

标签: c

一个建议,以下是在头文件中:

typedef struct{
   void*       userData;
} ESContext;

,在源文件中,有以下结构:

typedef struct
{
   GLuint programObject;
} UserData;

所以这里。在同一个源文件中,有一个函数从这样开始:

void Draw ( ESContext *esContext )
{
   UserData *userData = esContext->userData;
   ...
}

如果你把它读掉的话,这个最后的剪辑是如何发出声音的呢?它在做什么?谢谢你的帮助。

3 个答案:

答案 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}}