当我尝试将 "glfwSetErrorCallback" 函数放入 return 非整数值的 cout 中时,为什么会得到整数输出?
Why do I get integer output when I try to put "glfwSetErrorCallback" function in cout, which return non-integer value?
我正在学习 GLFW 3.3,正如功能描述中所说:
Returns the previously set callback, or NULL if no callback was set.
来源:[https://www.glfw.org/docs/3.3/group__init.html#gaff45816610d53f0b83656092a4034f40]
现在我要做的是了解它的价值。我试图将其理解为好像 return 值是指向函数的指针,因为正如文档中关于 GLFWerrorfun 类型所述:
typedef void(* GLFWerrorfun) (int, const char *)
This is the function pointer type for error callbacks.
来源:[https://www.glfw.org/docs/3.3/group__init.html#ga6b8a2639706d5c409fc1287e8f55e928]
这是我的代码:
#define GLFW_DLL
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
void handleErrorCallback (int code, const char * description)
{
// Code
}
int main (int argc, char * argv[])
{
std::cout << glfwSetErrorCallback (handleErrorCallback) << std::endl;
std::cout << glfwSetErrorCallback (NULL) << std::endl;
return 0;
}
控制台上写入的第一个值是0。
我得到它是因为 NULL 被 returned 因为还没有设置回调。
控制台上写的第二个值是1,让我很困惑:GLFWerrorfun return值是怎么转换成整数的?我所看到的是,当回调函数被设置时它总是 returns '1' 而当它没有被设置时总是 '0'。
glfwSetErrorCallback returns 一个被解释为整数的指针。
我认为这 post 会有所帮助:How to print function pointers with cout?
我正在学习 GLFW 3.3,正如功能描述中所说:
Returns the previously set callback, or NULL if no callback was set.
来源:[https://www.glfw.org/docs/3.3/group__init.html#gaff45816610d53f0b83656092a4034f40]
现在我要做的是了解它的价值。我试图将其理解为好像 return 值是指向函数的指针,因为正如文档中关于 GLFWerrorfun 类型所述:
typedef void(* GLFWerrorfun) (int, const char *)
This is the function pointer type for error callbacks.
来源:[https://www.glfw.org/docs/3.3/group__init.html#ga6b8a2639706d5c409fc1287e8f55e928]
这是我的代码:
#define GLFW_DLL
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <iostream>
void handleErrorCallback (int code, const char * description)
{
// Code
}
int main (int argc, char * argv[])
{
std::cout << glfwSetErrorCallback (handleErrorCallback) << std::endl;
std::cout << glfwSetErrorCallback (NULL) << std::endl;
return 0;
}
控制台上写入的第一个值是0。 我得到它是因为 NULL 被 returned 因为还没有设置回调。
控制台上写的第二个值是1,让我很困惑:GLFWerrorfun return值是怎么转换成整数的?我所看到的是,当回调函数被设置时它总是 returns '1' 而当它没有被设置时总是 '0'。
glfwSetErrorCallback returns 一个被解释为整数的指针。
我认为这 post 会有所帮助:How to print function pointers with cout?