在OpenGL中,当使用VBO时,为什么我经常看到指定的最后一个参数(指向数据的指针)......
glVertexPointer( 3, GL_FLOAT, 0, (char *) NULL );
......而不仅仅是这样......
glVertexPointer( 3, GL_FLOAT, 0, 0);
这可能只是一个首选语法的问题,因为它似乎是双向的。但如果有理由不使用零,为什么会这样呢?
答案 0 :(得分:2)
但如果有理由不使用零,为什么会这样?
缺乏对C编程语言的理解。在C中,空指针是0
,底层宏是
#define NULL 0
那里没有类型。
此外,未定义如果将某个数字(不是将指针强制转换为intptr_t的结果)转换为指针会发生什么。实际上你是在欺骗编译器。我在这里解释了详细信息:
答案 1 :(得分:0)
只是为了向读者说清楚它是一个指针。
openGL调用有很多参数,通常为零,所以如果连续有3或4个零,它只是让它更清晰一些