什么是声明(?),如“GLenum GlewInitResult = glewInit();”在做什么?

时间:2013-06-23 00:42:59

标签: 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编程的整体概念。

1 个答案:

答案 0 :(得分:4)

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

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

  1. 声明变量
  2. 将函数调用的结果分配给变量
  3. 即。与

    相同
    GLenum GlewInitResult;
    GlewInitResult = glewInit();
    

    这是非常基本的东西,应该是任何C(或C ++)书的第一章。它与OpenGL或GLEW库有很强的关系。

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