我一直在为scheme
包装gl文件,但它在gl.h
标题中失败了两次。我在OSx上,所以它可能与平台有关,但我在生活中的其他地方从未见过这种语法。
typedef void (* glMultiDrawElementsProcPtr) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount);
注意const GLvoid* const *indices
。方案C解释器有一个小C子集,不理解标题的这一部分。
这是什么意思,我怎样才能安全地用其他东西替换它......我把它改成了
const GLvoid** indices
答案 0 :(得分:1)
C和C ++中的类型是从右到左阅读的,除了大多数人坚持将const
置于错误的一边。从
const
展示位置后
const GLvoid* const*
到
GLvoid const* const*
读取类型变得微不足道:它是一个指向const
指向类型为const
的{{1}}对象的指针(你可能真的不能拥有GLvoid
类型的对象{1}}但它是任何对象的占位符)。您还可以使用内部指针可修改的组合和/或对象可修改,具体取决于您遗漏的GLvoid
。
答案 1 :(得分:0)
这意味着indices
是指向const GLvoid * const
的指针。
上面的数据类型也可以写为GLvoid const * const
。这告诉我们,GLvoid*
指针指向的数据和指针本身都不会被修改。
indices
本身没有这样的限制。您可以修改指向GLvoid*
的指针。