c - 像 "GLenum GlewInitResult = glewInit();"这样的声明(?)是做什么的?

标签 c opengl enums return-value declaration

我希望您的读者不会介意在这里回答我的简单请求。

GLenum GlewInitResult = glewInit();

我想确保我理解正确。

GLenum 是否将 GlewInitResult 设置为一个 uint?

GlewInitResult 是否仅分配给 glewInit() 的返回值?

或者进一步问,有什么区别

GLenum GlewInitResult = glewInit();

GLenum GlewInitResult = glewInit; //this statement gives me a type mismatch error

在这样的声明(?)中删除括号有什么作用?

抱歉,如果这是一个微不足道的问题。我只是想确保我掌握/理解使用 freeglut 进行 opengl 编程的总体概念。

最佳答案

它声明了一个名为GlewInitResult 的变量,并将函数调用glewInit 的结果赋给该变量。

您可以将其视为两个步骤:

  1. 声明变量
  2. 将函数调用的结果赋值给变量

即一样

GLenum GlewInitResult;
GlewInitResult = glewInit();

这是非常的基础知识,应该出现在任何 C(或 C++)书籍的第一章中。它与 OpenGL 或 GLEW 库无关

关于你的第二个问题,第一个调用函数glewInit并将返回结果存储在变量中。第二个尝试在变量中存储一个指向函数的指针,并且由于变量被声明为错误类型,您会得到一个错误。

关于c - 像 "GLenum GlewInitResult = glewInit();"这样的声明(?)是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256706/

相关文章:

c++ - 如何在 OpenGL 中执行矩形剪切

opengl - 了解 OpenGL 中的光照

java - LWJGL 渲染无任何内容

Java:在子类下使用带有枚举的switch语句

c - 是否可以在不使用第三方库的情况下在运行时告诉 C 中整数类型有多少字节

c - 使用指针访问二维数组会出现错误

c - 用字节码表示数组和记录

c# - 我应该为枚举成员使用什么 AttributeTarget?

java - 枚举作为存储?

c - 面试题-C中不使用strcat连接两个字符串